如何在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]; } 问题来源于stack overflow
在Swift中甚至更容易:
let string : String = "Hello " let characters = Array(string) println(characters) // [H, e, l, l, o, , , , , ] 这利用了以下事实:
一个Array可以从被创建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", " ", "", "", " ", ""]
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。