将一个字符串转换为字符数组 Swift 2.0

16

我需要将一个字符串转换为字符数组。这在Swift 1.2及更低版本中有效,但自从Swift 2.0以后就不行了。

var myString = "Hello"
Array(myString)  // ["H", "e", "l", "l", "o"]

请参考已更新至Swift 2的https://dev59.com/XF8e5IYBdhLWcg3wRIpQ。 - Martin R
3个回答

32
var myString = "Hello"
let characters = [Character](myString.characters)  // ["H","e","l","l","o"]

希望这能帮到你


为什么我几天前没有发现这个。更加优雅了! - R Menke
很好。不妨将其制作成计算变量:`extension String {var charValues : [Character] { get { guard self.isEmpty else { return [Character](self.characters) } return [] } }}` - jlmurph

11

首先,使用 String 结构体的 characters 属性:

let str = "Hello World"
var charView = str.characters

您获取到一个 CharacterView 实例。要访问 charView 的元素,必须使用 String.CharacterView.Index。如果您想将其转换为 String 数组,请执行以下操作:

let str = "Hello World"
var arr = str.characters.map { String($0) }

现在,您有一个类型为[String]的数组:

arr[0] // => "H"

9
您需要使用Stringcharacters属性,因为它不再是SequenceType
var myString = "Hello"
let charactersArray = Array(myString.characters)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接