Swift5中String、数组相互转换

这篇博客介绍了Swift中字符串与字符数组之间的转换方法,包括使用Array(str)、String(array)、String.components(separatedBy:)和[String].joined(separator:)等。此外,还提及了如何获取字符串指定位置的Character以及使用UnicodeScalar进行转换。提供了多个示例代码及其运行结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、采用 Array(str)、String(array) 方法

String转Character数组:Array(str)
Character数组转String:String(array)

let test = "i like ios"
let array = Array(test)     //[Character]
let string = String(array)  //String
print(array)
print(string)

结果打印:

[“i”, " ", “l”, “i”, “k”, “e”, " ", “i”, “o”, “s”]
i like ios

2、采用String.components(separatedBy: " ")、[String].joined(separator: " ")

String转[String]数组:String.components(separatedBy: " ")
[String]数组转String:[String].joined(separator: " ")

let test = "i like ios"
let array = test.components(separatedBy: " ")

let intArray = [1,2,3,4,5]
let dataArray = intArray.map(String.init)
let resultString = dataArray.joined(separator: "")
print(array)
print(resultString)

结果打印:

[“i”, “like”, “ios”]
12345

3、采用String.index(吐槽一下:这api真不好用)

String获取指定index的Character:String[String.index]
String根据index区间获取SubString:String(String[index_1...index_2])

let test = "i like ios"
let char_0 = test[test.index(test.startIndex, offsetBy: 0)]
let char_8 = test[test.index(test.startIndex, offsetBy: 8)]
let beginIndex = test.index(test.startIndex, offsetBy: 0)
let endIndex = test.index(test.startIndex, offsetBy: 8)
let subString = String(test[beginIndex...endIndex])
print(char_0)
print(char_8)
print(subString)

结果打印:

i
o
i like io

tips:

swift里的字符、字符串处理api比较多,在此记录几个经常使用的swift字符相关处理技巧

let charOfA = Character("A")
let uInt8Value = charOfA.asciiValue!            //Character转UInt8
let char = Character(UnicodeScalar(uInt8Value)) //UInt8转Character

let intArray = [1,2,3,4,5,6]
let strArray = intArray.map(String.init)       //[Int]转[String]

let str_Array = ["123","01","xx","000"]
let int_Array = str_Array.map(Int.init)        //[String]转[Int?] 因为有的字符串无法转int,该index存在且为nil
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值