componentsseparatedby和split的区别

高分请教下,componentsseparatedby和split的区别
最新回答
茴菿原点

2024-05-01 01:14:45

在NSString中有两个分割字符串的方法,分别为components(separatedBy:)方法和components(separatedBy:)方法。
(1)components(separatedBy:)方法是将字符串根据指定的字符串参数进行分割,并将分别的内容转换为一个数组。其语法形式如下:
func components(separatedBy separator: String) -> [String]
其中,separator用来指定分割字符串。
【示例1-67】以下将使用components(separatedBy:)方法将字符串进行分割。
import Foundation
var a=NSString(string:"A,B,C,D,E,F")
print("分割前:\(a)")
print("分割后:\(a.components(separatedBy: ","))") //分割字符串
运行结果如下:
分割前:A,B,C,D,E,F
分割后:["A", "B", "C", "D", "E", "F"]
(2)components(separatedBy:)方法是将字符串根据指定的字符编码参数进行分割,并将分别的内容转换为一个数组。其语法形式如下:
func components(separatedBy separator: CharacterSet) -> [String]
其中,separator用来指定分割的字符集。
【示例1-68】以下将使用components(separatedBy:)方法将字符串进行分割。
import Foundation
var a=NSString(string:"A*B*C*D*E*F")
print("分割前:\(a)")
var b:CharacterSet=NSCharacterSet(charactersIn:"*") as CharacterSet
print("分割后:\(a.components(separatedBy: b)))")
运行结果如下:
分割前:A*B*C*D*E*F
分割后:["A", "B", "C", "D", "E", "F"])
--------------------------------------------------------
split() 方法用于把一个字符串分割成字符串数组。
语法
stringObject.split(separator,howmany)

参数
描述

separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。
howmany 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
返回值
一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 stringObject 分割成子串创建的。返回的数组中的字串不包括 separator 自身。
但是,如果 separator 是包含子表达式的正则表达式,那么返回的数组中包括与这些子表达式匹配的字串(但不包括与整个正则表达式匹配的文本)。