使用Swift 2的字符串中字符的位置
我正在做一个字符串扩展,用于查找一个字符在字符串中可能出现的多个位置。这是我的代码:使用Swift 2的字符串中字符的位置,swift,Swift,我正在做一个字符串扩展,用于查找一个字符在字符串中可能出现的多个位置。这是我的代码: let letter: Character = "l" extension String { func checkLetter(letter: Character) { if let index = self.rangeOfString(AString: String(letter), range: Range<Int>(start: 2, end: 5) ) {
let letter: Character = "l"
extension String {
func checkLetter(letter: Character) {
if let index = self.rangeOfString(AString: String(letter), range: Range<Int>(start: 2, end: 5) ) {
print(index)
}
}
}
这是按照函数式编程方法编写的扩展
extension String {
func indexesOfChar(c: Character) -> [Int] {
return characters
.enumerate()
.filter { $0.element == c }
.map { $0.index }
}
}
试验
这是按照函数式编程方法编写的扩展
extension String {
func indexesOfChar(c: Character) -> [Int] {
return characters
.enumerate()
.filter { $0.element == c }
.map { $0.index }
}
}
试验
仅供参考
yourString.characters.indexOf(“a”)
将为您提供yourString
中第一次出现的“a”
的索引。您可以在while
循环中使用它来查找“a”
的上一个索引“a”加1的范围内的,然后将索引添加到数组中,直到输出为负1。仅供参考您的string.characters。indexOf(“a”)
将为您提供“a”第一次出现的索引
在您的字符串中
。你可以在while
循环中使用它来查找“a”
,从前面的“a”
加上1的索引范围内,然后将索引添加到数组中,直到输出为负1。为什么是扩展,一定有很好的理由?只是为了让我的代码看起来更干净,更容易理解。以下是线程:。这可能有助于作为起点:。下一个开发人员是否会想知道什么是checkLetter
,并且知道它是一个扩展?名称checkLetter
是否指示方法的作用,检查什么?至少给它一个描述性的名字,否则下一个开发者(可能是明年的你)将不得不找到、阅读并弄清楚它的功能。不,但是谢谢你的反馈。我会称之为:findindexesofchar为什么是一个扩展,一定有一个很好的理由?只是为了让我的代码看起来更干净,更容易理解。以下是线程:。这可能有助于作为起点:。下一个开发人员是否会想知道什么是checkLetter
,并且知道它是一个扩展?名称checkLetter
是否指示方法的作用,检查什么?至少给它一个描述性的名字,否则下一个开发者(可能是明年的你)将不得不找到、阅读并弄清楚它的功能。不,但是谢谢你的反馈。我称之为:findindexesofchart这是一段非常好的代码。谢谢你回答我的问题!这是一段非常好的代码。谢谢你回答我的问题!
"Luminetic Land".indexesOfChar("i") // [3, 7]