在 Swift 字符串中查找字符的索引
在 iOS 应用开发中,查找字符串中字符的索引很常见。根据给定的索引,您可以执行不同的操作。在本文中,您将看到一些如何使用以下函数获取字符索引的示例 -
firstIndex(of:)
firstIndex(where:)
range(of:)
在不同的用例中,上述所有方法都可以在字符串值上执行。
使用 FirstIndex() 方法
在 Swift 中,您可以使用 firstIndex(of:) 方法在字符串中查找字符的索引。这是一个例子 −
示例
let inputString = "The quick brown fox jumps over the lazy dog" let target: Character = "q" if let index = inputString.firstIndex(of: target) { let distance = inputString.distance(from: inputString.startIndex, to: index) print("输入字符串:\(inputString)") print("'\(target)' 的索引为:\(distance)") } else { print("未找到字符") }
输出
输入字符串:The quick brown fox jumps over the lazy dog 'q' 的索引为:4
上述代码通过 firstIndex(of:) 方法定义了一个名为 inputString 的输入字符串和字符"q"首次出现的目标字符。如果找到该字符,该方法将返回一个可选的索引值。该值被解包并用于使用 distance(from:to:) 方法计算从字符串开头到检索到的索引的距离。如果未找到该字符,代码将输出一条消息说明这一点。
使用 FirstIndex(where:) 方法
此方法允许您搜索与给定条件匹配的字符,而不是特定字符。这是一个例子 −
示例
let inputString = "The quick brown fox jumps over the lazy dog" let target: String = "b" if let index = inputString.firstIndex(where: { $0.isLetter && $0.lowercased() == target }) { let distance = inputString.distance(from: inputString.startIndex, to: index) print("输入字符串:\(inputString)") print("'\(target)' 的索引为:\(distance)") } else { print("未找到字符") }
输出
输入字符串:The quick brown fox jumps over the lazy dog 'b' 的索引为:10
在上面的例子中,我们使用 firstIndex(where:) 方法在输入字符串中查找目标小写字母"b"。此方法采用闭包来提供检查用例的条件并返回布尔值。如果返回 true,您将获得闭包中传递的字符的索引,否则返回 nil。这就是为什么我们在这里使用可选绑定 (if-let) 以安全的方式获取索引的原因。
获取索引值后,我们使用 distance(from:to:) 方法获取输入字符串中字符的最终索引。
使用 Range(of:) 方法
此方法允许您查找字符串中子字符串的范围。这是一个例子。
示例
let inputString = "敏捷的棕色狐狸跳过了懒狗" let target: String = "quick" if let range = inputString.range(of: target) { let beginningIndex = inputString.distance(from: inputString.startIndex, to: range.lowerBound) let endingIndex = inputString.distance(from: inputString.startIndex, to: range.upperBound) print("输入字符串:\(inputString)") print("'\(target)' 的起始索引为:\(startingIndex)") print("'\(target)' 的结束索引为:\(endingIndex)") } else { print("未找到字符") }
输出
输入字符串:The quick brown fox jumps over the lazy dog "quick"的起始索引为:4 "quick"的结束索引为:9
在前面的代码中,我们使用 range(of:) 方法找出输入字符串中子字符串"quick"的范围。该方法返回一个可选的范围值。该值被展开,并通过 distance(from:to:) 方法用于计算从字符串开头到范围下限和上限的距离。如果未找到子字符串,代码将输出一条消息说明。
结论
在 Swift 中,有几种方法可用于查找字符串中字符的索引,其中包括,我们使用了以下方法 -
firstIndex(of:)
firstIndex(where:)
range(of:)
所有上述方法均可用于获取输入字符串中字符的索引。很多时候,我们需要在 iOS 应用程序中获取字符索引以执行某些操作。这些方法可用于不同的用例。
在本文中,您了解了获取索引的每种方法和这些用例。所有方法都返回可选值作为输出,我们可以使用可选绑定安全地获取索引。