我有一个字符串var看起来像这样:
str = "1234 South St, Boston, MA"
有什么方法可以仅提取城市和州代码? 所以我想要这个结果:
extractedStr = "Boston, MA"
答案 0 :(得分:4)
您可以将NSDataDetector
用于CheckingType.address
,并从其NSTextCheckingKey
获取城市和州addressComponents
:
let str = "1234 South St, Boston, MA"
do {
if let addressComponents = try NSDataDetector(types: NSTextCheckingResult.CheckingType.address.rawValue)
.matches(in: str, range: NSRange(location: 0, length: str.utf16.count)).first?.addressComponents,
let city = addressComponents[.city],
let state = addressComponents[.state] {
print("city:", city)
print("state:", state)
let result = "\(city), \(state)"
print(result)
}
} catch {
print(error)
}
这将打印
城市:波士顿
状态:MA
马萨诸塞州波士顿
答案 1 :(得分:0)
如果您确定字符串的结构:(swift 4.0 +)
var str = "1234 South St, Boston, MA"
let splitted = str.components(separatedBy: ",")
splitted.map{ $0.replacingOccurrences(of: " ", with: "") }
var city = splitted[1]
var state = splitted[2]
print("City:\(city), State:\(state)")