Swift常用的字符串方法和属性
Swift常用的字符串方法和属性

Swift常用的字符串方法和属性

Swift 的字符串类型(String)功能强大,提供了丰富的方法来操作和处理文本。以下是一些常用的字符串方法和属性,根据用途分类总结如下:

基本属性

1、count: 字符串的长度(字符数)。

let text = "Hello"
print(text.count) // 5

2、isEmpty: 检查字符串是否为空。

let text = ""
print(text.isEmpty) // true

字符串比较

1、==: 比较两个字符串是否相等。

let a = "Swift"
let b = "Swift"
print(a == b) // true

2、hasPrefix(_:): 检查字符串是否以指定前缀开头。

let text = "Hello, World!"
print(text.hasPrefix("Hello")) // true

3、hasSuffix(_:): 检查字符串是否以指定后缀结尾。

let text = "Hello, World!"
print(text.hasSuffix("!")) // true

字符串操作

1、lowercased() 和 uppercased(): 转换为小写或大写。

let text = "Swift"
print(text.lowercased()) // "swift"
print(text.uppercased()) // "SWIFT"

2、trimmingCharacters(in:): 去除字符串两端指定字符集的内容(如空格)。

let text = "  Swift  "
print(text.trimmingCharacters(in: .whitespaces)) // "Swift"

3、replacingOccurrences(of:with:): 替换字符串中的指定部分。

let text = "Hello, World!"
print(text.replacingOccurrences(of: "World", with: "Swift")) // "Hello, Swift!"

4、remove(at:):删除指定索引处的字符。

var str = "Hello, World!"
let index = str.index(str.startIndex, offsetBy: 5)
str.remove(at: index)  // "Hello World!"

5、removeSubrange(_:):删除指定范围的字符。

var str = "Hello, World!"
let range = str.index(str.startIndex, offsetBy: 7)..<str.endIndex
str.removeSubrange(range)  // "Hello,"

6、insert(_:at:):在指定位置插入字符。

var str = "Hello, World!"
let index = str.index(str.startIndex, offsetBy: 5)
str.insert("X", at: index)  // "HelloX, World!"

7、capitalized:将字符串中的每个单词的首字母大写。

let str = "hello, world"
let result = str.capitalized  // "Hello, World"

子字符串

1、contains(_:): 检查字符串是否包含某个子字符串。

let text = "Hello, World!"
print(text.contains("World")) // true

2、prefix(_:) 和 suffix(_:): 提取前缀或后缀部分。

let text = "Swift Programming"
print(text.prefix(5)) // "Swift"
print(text.suffix(11)) // "Programming"

3、prefix (while:):获取字符串从开始位置起,直到遇到指定条件不再满足为止的部分。

let str = "123abc456"
let result = str.prefix(while: { $0.isNumber }) // "123"

4、suffix (while:):获取字符串从结尾起,直到遇到指定条件不再满足为止的部分。

let str = "123abc456"
let result = str.suffix(while: { $0.isNumber }) // "456"

5、prefix(upTo:):获取从开始到指定索引之前的部分。

let str = "Hello, World!"
let result = str.prefix(upTo: str.index(str.startIndex, offsetBy: 5)) // "Hello"

6、suffix(from:):获取从指定索引开始到字符串结尾的部分。

let str = "Hello, World!"
let result = str.suffix(from: str.index(str.startIndex, offsetBy: 7))  // "World!"

分割和拼接

1、components(separatedBy:): 按分隔符拆分字符串。

let text = "Swift,UI,Code"
print(text.components(separatedBy: ",")) // ["Swift", "UI", "Code"]

2、split(separator:): 按字符拆分字符串。

let text = "Swift UI Code"
print(text.split(separator: " ")) // ["Swift", "UI", "Code"]

3、joined(separator:): 将字符串数组拼接成单个字符串。

let array = ["Swift", "UI", "Code"]
print(array.joined(separator: " ")) // "Swift UI Code"

4、dropFirst(_:):去掉字符串的前面 n 个字符。

let formattedDecimal = String(format: "%.2f", 0.4567)  // 结果是 "0.46"
let result = formattedDecimal.dropFirst(1)               // 结果是 "46"

5、dropLast(_:):去掉字符串的最后 n 个字符。

let str = "Hello, World!"
let result = str.dropLast(1) // "Hello, World"

6、drop(while:):删除字符串的前部分字符,直到满足某个条件。

let str = "aaaHello, World!"
let result = str.drop(while: { $0 == "a" })  // "Hello, World!"

索引操作

1、startIndexendIndex: 获取字符串的起始和结束索引。

let text = "Swift"
print(text[text.startIndex]) // "S"
print(text[text.index(before: text.endIndex)]) // "t"

2、index(_:offsetBy:): 根据偏移量获取索引。

let text = "Swift"
let index = text.index(text.startIndex, offsetBy: 2)
print(text[index]) // "i"

格式化

1、formatted(): 将数字等格式化为字符串(适用于Date、Number等)。

let number = 1234.56
print("\(number.formatted(.number.precision(.fractionLength(2))))") // "1,234.56"

正则匹配

1、range(of:options:): 查找字符串中的模式。

let text = "SwiftUI is awesome"
if let range = text.range(of: "SwiftUI") {
    print(text[range]) // "SwiftUI"
}

2、字符串插值

使用 \() 在字符串中插入变量或表达式。

let name = "Swift"
let version = 5.9
print("Welcome to \(name) version \(version).") // "Welcome to Swift version 5.9."

3、localizedCaseInsensitiveContains:忽略大小写匹配

需要简单的本地化字符串匹配,但不涉及排序规则等复杂逻辑。

let text = "Hello, SwiftUI!"
let searchQuery = "swift"

let result = text.localizedCaseInsensitiveContains(searchQuery)
print(result) // true

4、localizedStandardContains:文本匹配

返回布尔值 true 或 false,表示目标字符串是否包含指定子字符串。

let text = "Hello, SwiftUI!"
let searchQuery = "swift"

let result = text.localizedStandardContains(searchQuery)
print(result) // true

对大小写不敏感(Hello, SwiftUI! 中的 Swift 与 swift 能匹配)。

能正确处理用户语言环境下的特定字符匹配,比localizedCaseInsensitiveContains高级。

   

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开发者。

欢迎加入我们的 微信交流群QQ交流群,交流更多精彩内容!
微信交流群二维码 QQ交流群二维码

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注