下面是用逗號分隔的字符串的兩個例子,我回來的結果逗號列提取:的NSString:從分離的NSString
NSString *placeResult = @"111 Main Street, Cupertino, CA"
或有時結果包含地名:
NSString *placeResult = @"Starbucks, 222 Main Street, Cupertino, CA"
檢查上面的字符串以查看它是以名稱還是街道地址開頭的最佳方法是什麼? 。
如果它以一個名稱(即星巴克在上面的第二實施例「)開始,我想提取的名稱,並將其存儲到另一個可變因此提取後的字符串將是:
NSLog (@"%s", placeResult);
日誌會打印:
"222 Main Street, Cupertino, CA"
另一個字符串現在將存儲@ 「星巴克」 在它:
NSLog (@"%s", placeName);
日誌將打印:
"Starbucks"
重要提示:我不能在提取後失去逗號分隔。
謝謝!
非常簡潔明智的做法。我不知道你可以做NSTextCheckingTypeAddress。問題:如果NSTextCheckingNameKey是空白的,爲什麼我需要檢查比賽的範圍? – user1107173 2013-04-24 22:49:33
看看我的答案中的例子。該地址不包含名稱「星巴克」。由於「NSTextCheckingNameKey」沒有值,所以您需要查看字符串開頭是否真的有名稱。你可以通過查看比賽的範圍來做到這一點。如果它不是零,那麼你可以假定字符串的開始直到那個匹配範圍是一個被忽視的名字。但是,這一切都取決於你需要解析的字符串。 – rmaddy 2013-04-24 22:53:41
對不起,我還是很困惑。我試圖從谷歌地點自動填充。它以我的問題的格式返回地址。我剛剛運行了你的代碼,你說得對,沒有提及「星巴克」。你能否詳細說明一下:「看看字符串的開頭是否有名字,你可以通過查看匹配的範圍來做到這一點,如果它不是零,那麼你可以假設字符串的起始位置是匹配範圍是一個被忽視的名字。「在這一點上,我只是試圖解析(@「星巴克,加利福尼亞州庫比蒂諾市222大街」);顯然,星巴克是第一個字符串。 – user1107173 2013-04-24 23:46:36