将 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];
}

 

第 1 个答案:

在 Swift 中更容易:

let string : String = "Hello 馃惗馃惍 馃嚛馃嚜"
let characters = Array(string)
println(characters)
// [H, e, l, l, o,  , 馃惗, 馃惍,  , 馃嚛馃嚜]

这使用了以下事实

  • anArray可以从 a 创建SequenceType,并且
  • String符合SequenceType协议,其序列生成器枚举字符。

而且由于 Swift 字符串完全支持 Unicode,这甚至适用于“基本多语言平面”之外的字符(例如馃惗)和扩展字素簇(例如馃嚛馃嚜,它实际上由 两个
Unicode 标量组成)。


更新:从 Swift 2 开始, String不再符合 SequenceType,但该characters属性提供了 Unicode
字符序列:

let string = "Hello 馃惗馃惍 馃嚛馃嚜"
let characters = Array(string.characters)
print(characters)

这也适用于 Swift 3


更新:从 Swift 4 开始, String它(再次)是其 Characters 的集合:

let string = "Hello 馃惗馃惍 馃嚛馃嚜"
let characters = Array(string)
print(characters)
// ["H", "e", "l", "l", "o", " ", "馃惗", "馃惍", " ", "馃嚛馃嚜"]

点击容器会触发onTap()处理程序,但不会显示任何墨水飞溅效果。class _MyHomePageState extends State<MyHomePage> { @override W ...