将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(再次)是其Characters 的集合 :

let string = "Hello ???????? ????????"

let characters = Array(string)

print(characters)

// ["H", "e", "l", "l", "o", " ", "????", "????", " ", "????????"]

以上是 将Swift字符串转换为数组 的全部内容, 来源链接: utcz.com/qa/436337.html

回到顶部