将Swift字符串转换为数组
如何在Swift中将字符串“ Hello”转换为数组[“ H”,“ e”,“ l”,“ l”,“ o”]?
在Objective-C中,我使用了以下方法:
NSMutableArray *characters = [[NSMutableArray alloc] initWithCapacity:[myString length]];for (int i=0; i < [myString length]; i++) {
NSString *ichar = [NSString stringWithFormat:@"%c", [myString characterAtIndex:i]];
[characters addObject:ichar];
}
回答:
在Swift中甚至更容易:
let string : String = "Hello ???????? ????????"let characters = Array(string)
println(characters)
// [H, e, l, l, o, , ????, ????, , ????????]
这利用了以下事实:
- 一个
Array
可以从被创建SequenceType
,并且 String
符合SequenceType
协议,并且其序列生成器枚举字符。
而且由于Swift字符串完全支持Unicode,所以即使在“基本多语言平面”之外的字符(例如????)和扩展的字素簇(例如????????,它实际上由 两个
Unicode标量组成)下,该字符串也可以使用。
String
不再符合 SequenceType
,但该characters
属性提供了Unicode字符序列:
let string = "Hello ???????? ????????"let characters = Array(string.characters)
print(characters)
这也适用于 。
String
(再次)是其Character
s 的集合 :
let string = "Hello ???????? ????????"let characters = Array(string)
print(characters)
// ["H", "e", "l", "l", "o", " ", "????", "????", " ", "????????"]
以上是 将Swift字符串转换为数组 的全部内容, 来源链接: utcz.com/qa/436337.html