Swift 數(shù)組和字符串轉(zhuǎn)換基礎(chǔ)

數(shù)組轉(zhuǎn)字符串

let testArr = ["1","2","3","4","5","6","7"]
// 方法一:
let resultStr = testArr.joined()
打印resultStr結(jié)果:"1234567"
// 方法二:(如果你想要的結(jié)果字符串依然包含分割符可以使用如下方法分割)
let resultStr = testArr.joined(separator: ",")
打印resultStr結(jié)果:"1,2,3,4,5,6,7"


字符串轉(zhuǎn)數(shù)組
沒(méi)有分隔符的字符串分割

let testString = "abcdefghijklmn"
//方法一:
let resultArr = Array(testString)
打印resultArr結(jié)果:["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n"]
// 方法二:
let resultArr2 = testString.compactMap { (item) -> String? in
  return "\(item)"
}
打印resultArr2結(jié)果:["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n"]

有分隔符的字符串分割

let slipStr:String = "adcddgjfdflldkmldv"
示例以字母"d"為分割符,將字符串分割
方法一:
let slipArray = slipStr.split(separator: "d")
打印結(jié)果:["a", "c", "gjf", "fll", "kml", "v"]
方法二:
slipStr.components(separatedBy: "d")
打印結(jié)果:["a", "c", "", "gjf", "fll", "kml", "v"]

注釋:在使用分隔符來(lái)分割字符串時(shí),方法一與方法二的區(qū)別在于,如果存在兩個(gè)相鄰的分隔符,方法二會(huì)留存空字符串,方法一則會(huì)去掉空字符串。
數(shù)組的遍歷方法簡(jiǎn)析


var dataArray:[String] = ["晴天","陰天","大雨","多云","大風(fēng)","雨夾雪","小雨"]
方法一:
dataArray.forEach { (item) in
  debugPrint(item)
}
方法二:
for item in dataArray {
  debugPrint(item)
}
方法三:
// 該循環(huán)方式可設(shè)置開(kāi)閉區(qū)間,設(shè)置時(shí)需注意數(shù)組越界
for i in 0..<dataArray.count {
 debugPrint(dataArray[i])
}
方法四:
//該方法可以循環(huán)輸出元組類型,包含下標(biāo)index及對(duì)應(yīng)的item
for (index,item) in dataArray.enumerated() {
  debugPrint(index,item)
}

注釋:我嘗試使用方法一與方法二,分別遍歷輸出0~100000之間的數(shù)字,來(lái)比較耗時(shí)長(zhǎng)短。方法一耗時(shí)0.1173100471496582,方法二耗時(shí)0.0031960010528564453,因此方法二耗時(shí)較短,故遍歷數(shù)據(jù)較多時(shí)建議使用方法二。
獲取數(shù)組中符合條件的某個(gè)對(duì)象

var dataArray:[String] = ["晴天","陰天","大雨","多云","大風(fēng)","雨夾雪","小雨"]
//示例是查找末尾字符是“雨”的對(duì)象
方法一:
if let text = dataArray.first(where: {$0.hasSuffix("雨")}) {
  debugPrint(text)
}
輸出結(jié)果:"大雨"
//注意:該方法是從數(shù)組的第一個(gè)位置開(kāi)始查找,當(dāng)有符合條件的對(duì)象就輸出,剩下的不會(huì)繼續(xù)查找。
方法二:
if let text = dataArray.last(where: {$0.hasSuffix("雨")}) {
  debugPrint(text)
}
輸出結(jié)果:"小雨"
//注意:該方法是從數(shù)組的最后一個(gè)位置開(kāi)始查找,當(dāng)有符合條件的對(duì)象就輸出,剩下的不會(huì)繼續(xù)查找。
同理用下面兩個(gè)方法獲取符合條件的對(duì)象下標(biāo):
func firstIndex(where predicate: (Element) throws -> Bool) rethrows -> Int?
func lastIndex(where predicate: (Element) throws -> Bool) rethrows -> Int?
方法三:
let con = dataArray.contains(where: {$0 == "小雨"})
debugPrint(con)
輸出結(jié)果:true

//注意:該方法主要是用來(lái)判斷數(shù)組中是否包含符合某個(gè)條件的對(duì)象,返回值為true或false

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容