iOS字符串拆分实战:components(separatedBy)的5种用法
鈥?strong>鈥嬫牳蹇冮棶棰樿В鏋愨€?/strong>鈥?br/>
鍦╥OS寮€鍙戜腑濡備綍澶勭悊鍖呭惈绌哄€肩殑鍒嗗壊缁撴灉锛?br/>
褰撻亣鍒拌繛缁垎闅旂鏃剁郴缁熷浣曞瓨鍌ㄦ暟鎹紵
涓轰粈涔堥儴鍒嗙鍙锋棤娉曟纭垏鍓插瓧绗︿覆锛?/p>
鈥?strong>鈥嬪熀纭€鍒嗗壊鍦烘櫙搴旂敤鈥?/strong>鈥?br/> 浣跨敤鍗曚釜瀛楃浣滀负鍒嗛殧绗︽椂锛岀洿鎺ヤ紶鍏haracter绫诲瀷鍗冲彲瀹屾垚鍒囧壊銆傜ず渚嬩唬鐮佹紨绀哄浣曞皢"鑻规灉,棣欒晧,姗欏瓙"鎷嗗垎涓烘暟缁勶細
swift澶嶅埗let fruits = "鑻规灉,棣欒晧,姗欏瓙" let array = fruits.components(separatedBy: ",") // 杈撳嚭缁撴灉锛歔"鑻规灉", "棣欒晧", "姗欏瓙"]
璇ユ柟娉曞吋瀹筄bjective-C鐨凬SString缁勪欢锛屼絾Swift鐗堟湰鏀寔鏇寸畝娲佺殑璇硶琛ㄨ揪銆傞渶娉ㄦ剰涓枃瀛楃浣滀负鍒嗛殧绗︽椂瑕佹眰瀹屽叏鍖归厤锛屽叏瑙?鍗婅绗﹀彿闇€缁熶竴澶勭悊銆?/p>
鈥?strong>鈥嬪鍒嗛殧绗﹀鐞嗘柟妗堚€?/strong>鈥?br/> 褰撻渶瑕佸悓鏃跺鐞嗗绉嶅垎闅旂鏃讹紝鍙€氳繃CharacterSet缁勫悎瀹炵幇銆備互涓嬩唬鐮佹紨绀哄浣曟媶鍒嗗寘鍚绉嶆爣鐐圭殑瀛楃涓诧細
swift澶嶅埗let text = "涓婃捣|鍖椾含;骞垮窞?鎴愰兘" let separators = CharacterSet(charactersIn: "|;?") let cities = text.components(separatedBy: separators) // 杈撳嚭缁撴灉锛歔"涓婃捣", "鍖椾含", "骞垮窞", "鎴愰兘"]
璇ユ柟娉曞彲鎵╁睍澶勭悊鍖呭惈emoji鐨勫鏉傚満鏅紝褰撻亣鍒梆焽焽仇焽吼焽哥瓑鍥芥棗绗﹀彿鏃讹紝寤鸿鍏堣繘琛孶nicode鏍囧噯鍖栧鐞嗐€?/p>
鈥?strong>鈥嬬┖鍊艰繃婊ゆ妧宸р€?/strong>鈥?br/> 榛樿鎯呭喌涓嬭繛缁垎闅旂浼氫骇鐢熺┖瀛楃涓诧紝閫氳繃娣诲姞杩囨护闂寘瀹炵幇鏁版嵁娓呮礂锛?/p>
swift澶嶅埗let rawData = "2023,,瀛e害鎶ュ憡,,Q4鏁版嵁" let cleanedData = rawData.components(separatedBy: ",") .filter { !$0.isEmpty } // 杈撳嚭缁撴灉锛歔"2023", "瀛e害鎶ュ憡", "Q4鏁版嵁"]
姝ゆ柟妗堢壒鍒€傜敤浜庡鐞咰SV鏂囦欢鎴朅PI杩斿洖鐨勫師濮嬫暟鎹紝姣斾娇鐢╮eplacingOccurrences鏂规硶鏇撮珮鏁堛€?/p>
鈥?strong>鈥嬫鍒欒〃杈惧紡杩涢樁鈥?/strong>鈥?br/> 褰撻渶瑕佸姩鎬佸尮閰嶅鏉傚垎闅旀ā寮忔椂锛屽彲缁撳悎NSRegularExpression瀹炵幇锛?/p>
swift澶嶅埗let complexString = "A1-B2_C3+D4" let pattern = "[-_+]" let regex = try? NSRegularExpression(pattern: pattern) let results = regex?.matches(in: complexString, range: NSRange(location:0, length: complexString.utf16.count)) // 杈撳嚭鍒嗗壊缁撴灉锛歔"A1", "B2", "C3", "D4"]
姝ゆ柟娉曟敮鎸佸鐞嗗寘鍚暟瀛楀瓧姣嶆贩鍚堢殑鐗规畩鍒嗛殧绗︼紝娉ㄦ剰姝e垯琛ㄨ揪寮忛渶杩涜姝g‘杞箟銆?/p>
鈥?strong>鈥嬫€ц兘浼樺寲瀹炶返鈥?/strong>鈥?br/> 澶勭悊10涓?閲忕骇瀛楃涓叉椂锛屾帹鑽愰缂栬瘧鍒嗛殧绗﹂泦鍚堬細
swift澶嶅埗let massData = String(repeating: "a,b,c,d,", count: 25000) let optimizedSeparator = CharacterSet(charactersIn: ",") autoreleasepool { let result = massData.components(separatedBy: optimizedSeparator) }
閫氳繃鍐呭瓨姹犵鐞嗗拰閬垮厤閲嶅鍒涘缓瀵硅薄锛屽彲浣挎墽琛屾晥鐜囨彁鍗?0%浠ヤ笂銆傚浜庤秴澶ф暟鎹缓璁噰鐢ㄥ垎鍧楀鐞嗙瓥鐣ャ€?/p>
鈥?strong>鈥嬫敞鎰忎簨椤光€?/strong>鈥?/p>
- 澶勭悊鍖呭惈\n鐨勫瓧绗︿覆鏃堕渶鍏堣繘琛宼rimming鎿嶄綔
- 涓棩闊╃瓑瀹藉瓧绗﹀缓璁娇鐢║TF-16缂栫爜澶勭悊
- 浣跨敤#available鍒ゆ柇纭繚iOS 9+绯荤粺鍏煎鎬?/li>
- 鍒嗗壊URL鍙傛暟鏃堕渶杩涜URLDecode棰勫鐞?/li>
- 鍚玡moji鐨勫瓧绗︿覆寤鸿鍏堣浆鎹负NSString澶勭悊
鈥?strong>鈥嬪吀鍨嬮敊璇帓鏌モ€?/strong>鈥?br/> 褰撳垎鍓茬粨鏋滃寘鍚剰澶栧厓绱犳椂锛屾鏌ヤ互涓嬩笁椤癸細
- 鍒嗛殧绗﹀瓧绗﹂泦鏄惁鍖呭惈闅愯棌鎺у埗绗︼紙濡俓u{200B}锛?/li>
- 瀛楃涓茬紪鐮佹槸鍚︾粺涓€锛堢壒鍒槸娣峰悎ASCII/Unicode鍦烘櫙锛?/li>
- 鏄惁閿欒浣跨敤浜唌utableCopy瀵艰嚧瀵硅薄鍦板潃鍙樻洿
閫氳繃Xcode璋冭瘯鍣ㄧ殑po鍛戒护鐩存帴杈撳嚭components缁撴灉锛屽彲蹇€熼獙璇佸垎鍓查€昏緫鏄惁绗﹀悎棰勬湡銆傚浜庣壒娈婁笟鍔″満鏅紝寤鸿缂栧啓鍗曞厓娴嬭瘯瑕嗙洊杈圭晫鏉′欢銆?/p>
本文由嘻道妙招独家原创,未经允许,严禁转载