将 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, , 馃惗, 馃惍, , 馃嚛馃嚜]
这使用了以下事实
- an
Array
可以从 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
它(再次)是其 Character
s 的集合:
let string = "Hello 馃惗馃惍 馃嚛馃嚜" let characters = Array(string) print(characters) // ["H", "e", "l", "l", "o", " ", "馃惗", "馃惍", " ", "馃嚛馃嚜"]
点击容器会触发onTap()处理程序,但不会显示任何墨水飞溅效果。class _MyHomePageState extends State<MyHomePage> { @override W ...