【发布时间】:2023-03-03 18:20:01
【问题描述】:
我正在使用 Swift 4.2 处理包含 \r\n 的字符串。我遇到了 Swift 索引的一种奇怪行为,似乎 \r\n 将被 Swift 索引方法视为一个字符而不是两个字符。我写了一段代码来呈现这种行为:
var text = "ABC\r\n\r\nDEF"
func printChar(_ lower: Int, _ upper: Int) {
let start = text.index(text.startIndex, offsetBy: lower)
let end = text.index(text.startIndex, offsetBy: upper)
print("\"" + text[start..<end] + "\"")
}
printChar(0, 1) // "A"
printChar(1, 2) // "B"
printChar(2, 3) // "C"
printChar(3, 4) // new line
printChar(4, 5) // new line (okay, what's going on here?)
printChar(5, 6) // "D"
printChar(6, 7) // "E"
printChar(7, 8) // "F"
打印结果为
"A"
"B"
"C"
"
"
"
"
"D"
"E"
"F"
知道为什么会这样吗?
【问题讨论】: