我有一个字符串(asderwt.qwertyu.zxcvbbnnhg
),我想将其更改为.qwertyu.zxcvbbnnhg
。
我尝试使用以下代码来做到这一点:
Var str = "asderwt.qwertyu.zxcvbbnnhg"
if let dotRange = str.range(of: ".") {
str.removeSubrange(dotRange.lowerBound..<str.startIndex)
print("AAAAAAAAAA: \(str)")
}
答案 0 :(得分:2)
获取点的第一个索引,并获取该索引之后的子字符串
let str = "asderwt.qwertyu.zxcvbbnnhg"
if let index = str.firstIndex(where: { $0 == "." }) {
print(str[index...])//.qwertyu.zxcvbbnnhg
}
答案 1 :(得分:1)
您在正确的轨道上,但是在这里
str.removeSubrange(dotRange.lowerBound..<str.startIndex)
范围边界顺序错误。应该是
var str = "asderwt.qwertyu.zxcvbbnnhg"
if let dotRange = str.range(of: ".") {
str.removeSubrange(str.startIndex..<dotRange.lowerBound) // <-- HERE
print("Result: \(str)") // Result: .qwertyu.zxcvbbnnhg
}
您还可以使用“部分范围”
if let dotRange = str.range(of: ".") {
str.removeSubrange(..<dotRange.lowerBound)
print("Result: \(str)") // Result: .qwertyu.zxcvbbnnhg
}
或者使用firstIndex(of:)
代替range(of:)
:
if let dotIndex = str.firstIndex(of: ".") {
str.removeSubrange(..<dotIndex)
print("Result: \(str)") // Result: .qwertyu.zxcvbbnnhg
}