我在获取包含两个双引号 "
的字符串的子字符串时遇到问题。
例如:我的 desString 等于 ["39013"]
我需要得到:39013
但问题是当我在寻找 "
符号的索引时,Swift 将其视为普通代码,而不是特定字符。我该如何解决这个问题?
这不是重复的,在这个问题中他问的是 '
符号,但我问的是 "
,当您打印特定值时它是类似的符号(对于示例:print("dup")。这意味着,当我尝试使用 index(of """)
查找 "
字符的索引时,有三个Xcode 说其中一个丢失了。实际上它并没有丢失,我正在寻找它。但这就是问题所在。
这是我使用 "["
和 "]"
查找索引的代码。
let first = desString.index(of: "[") ?? desString.startIndex
let last = desString.index(of: " ") ?? desString.endIndex
let substring1 = desenString[first..<last]
最佳答案
纯属娱乐。首先,我认为值得一提的是,您应该使用 JSONSerialization
或使用 Codable
协议(protocol)来解析您的 JSON 数组。如果您想通过常规 String
搜索来接近它,您可以使用 index(of: Character)
来查找第一个匹配项,然后在子字符串中重复索引搜索找到第一个索引之后的索引:
let string = #"["39013"]"#
if let index = string.firstIndex(of: "\""),
case let start = string.index(after: index),
let end = string[start...].firstIndex(of: "\"") {
let substring = string[start..<end]
print(substring) // "39013\n"
}
关于swift - swift 4中两个(“)符号之间的子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48736575/