[英]Swift: how to convert array of Int into array of Characters?
例如我有一个Int
数组:
let digits = [Int](0...9)
我可以将其转换为字符数组: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
?
Swift 不会隐式转换类型,因此这不起作用:
let digits: Array<Character> = [Int](0...9)
注意:只有 0-9 有效,数字可以不排序。
func convertArray(array: [Int]) -> [Character] {
return array.map {
Character(String($0))
}
}
尝试这个:
Array(0...9).map({String($0)}).map({ Character($0) })
在上面的代码中,我们从[Int]
中获取每个Int
,使用 String 构造函数/初始化器将其转换为String
(换句话说,我们将 String 初始化器(一个接受某些东西并返回一个字符串的函数)应用于您的[Int]
使用map
一个高阶函数),一旦第一个操作结束,我们将得到[String]
,第二个操作使用这个新的[String]
并将其转换为[Character]
。
如果您想阅读有关字符串的更多信息,请访问此处。
@LeoDabus 提出以下建议:
Array(0...9).map(String.init).map(Character.init) //<-- no need for closure
或者不像我们之前那样有两个操作,您可以通过一次迭代来完成。
Array(0...9).map({Character("\\($0)")})
@Alexander 提出以下建议
Array((0...9).lazy.map{ String($0) }.map{ Character($0) })
(0...9).map{ Character(String($0)) } //<-- where you don't need an array, you'd use your range right away
尝试这个
var arrChars = [string]()
for i in 0..<digits.count
{
let item = digits[i]
arrChars.append("\(item)")
}
只需使用map
功能:
let stringArray = digits.map{String($0)}
一种可能的方法是从 Ascii 代码创建Character
。
let charArrFromAscii = Array(48...57).map({ Character(UnicodeScalar($0)) })
另一种方法是将Int
值映射到Character
。
let charArrFromInt = Array(0...9).map({ Character("\($0)") })
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.