在 Swift5 中获取部分字符串
Getting partial String in Swift5
我正在尝试从 Swift5 中的给定输入字符串中提取部分字符串。就像字符串的字母 2 到 5。
我确信,像 inputString[2...5]
这样简单的东西会起作用,但我只是让它像这样工作:
String(input[(input.index(input.startIndex, offsetBy: 2))..<(input.index(input.endIndex, offsetBy: -3))])
... 仍在使用相对位置(endIndex-3 而不是 position #5)
现在我想知道我到底哪里搞砸了。
人们通常如何通过绝对位置从 "abcdefgh" 中提取 "cde"?
我为 shorthand 子字符串编写了以下扩展,而无需在我的主代码中处理索引和转换:
extension String {
func substring(from: Int, to: Int) -> String {
let start = index(startIndex, offsetBy: from)
let end = index(start, offsetBy: to - from + 1)
return String(self[start ..< end])
}
}
let testString = "HelloWorld!"
print(testString.substring(from: 0, to: 4)) // 0 to 4 inclusive
输出 Hello
.
我正在尝试从 Swift5 中的给定输入字符串中提取部分字符串。就像字符串的字母 2 到 5。
我确信,像 inputString[2...5]
这样简单的东西会起作用,但我只是让它像这样工作:
String(input[(input.index(input.startIndex, offsetBy: 2))..<(input.index(input.endIndex, offsetBy: -3))])
... 仍在使用相对位置(endIndex-3 而不是 position #5)
现在我想知道我到底哪里搞砸了。
人们通常如何通过绝对位置从 "abcdefgh" 中提取 "cde"?
我为 shorthand 子字符串编写了以下扩展,而无需在我的主代码中处理索引和转换:
extension String {
func substring(from: Int, to: Int) -> String {
let start = index(startIndex, offsetBy: from)
let end = index(start, offsetBy: to - from + 1)
return String(self[start ..< end])
}
}
let testString = "HelloWorld!"
print(testString.substring(from: 0, to: 4)) // 0 to 4 inclusive
输出 Hello
.