如何从特定位置查找字符串中字符的索引
问题描述:
我知道如何找到如下字符的索引:
I know how to find an index of a character like the following:
func indexOfCharacter(myString:String, char: Character) -> Int {
if let idx = find(myString, char) {
return distance(self.startIndex, idx)
}else{
return -1;
}
}
我如何查找索引在特定职位之后?
How can I look for an index after a specific position ?
例如:
myString =abcdabcd
example: myString="abcdabcd"
我想要得到第二个'd'= 7的索引
I would like to get the index of the second 'd' = 7
indexOfCharacter(myString,character : 'd',fromIndex: 4);
任何帮助?
答
尝试这样:
func indexOfCharacter(myString:String, char: Character,fromIndex: Int) -> Int {
let sub = myString.substringFromIndex(advance(myString.startIndex, fromIndex))
if let idx = find(sub, char) {
return distance(sub.startIndex, idx) + fromIndex
}else{
return -1
}
}
let myString = "abcdabcd"
indexOfCharacter(myString, "d", 4) // 7
更新: Xcode 7.3•Swift 2.2
func indexOfCharacter(myString:String, char: Character, fromIndex: Int) -> Int {
let sub = myString.substringFromIndex(myString.startIndex.advancedBy(fromIndex))
if let idx = sub.characters.indexOf(char){
return sub.startIndex.distanceTo(idx) + fromIndex
}else{
return -1
}
}