String 在Swift中遍历字符串中的字符
我想迭代一个字符串,条件是在一次迭代中跳过2个或更多字符。C语言中的一个示例代码++String 在Swift中遍历字符串中的字符,string,swift,iteration,String,Swift,Iteration,我想迭代一个字符串,条件是在一次迭代中跳过2个或更多字符。C语言中的一个示例代码++ // str = "123" for (int i = 0; i < str.size(), i++) { if (str[i] == '2') { // do something i++; } // do something } 我猜这是我弄错的地方,“index!=str.endIndex” 如何修复它或任何其他方法来实现这一点?advanc
// str = "123"
for (int i = 0; i < str.size(), i++) {
if (str[i] == '2') {
// do something
i++;
}
// do something
}
我猜这是我弄错的地方,“index!=str.endIndex”
如何修复它或任何其他方法来实现这一点?
advancedBy(i)
可能应该是advancedBy(1)
谢谢@MartinR这是一个打字错误请注意,您的C++代码也有一个缺陷:如果最后一个字符是“2”,那么i
的增量将超过字符串大小。
// str = "123"
for var index = str.startIndex; index != str.endIndex; index = index.advancedBy(1) {
if (str[index] == "2") {
// do something
index = index.advancedBy(1)
}
// do something
}