let str = "123456789"
let intArray = reduce(str, [Int]()) { (var array: [Int], char: Character) -> [Int] in
if let i = String(char).toInt() {
array.append(i)
} else {
println("Warning: could not convert character \(char) to an integer")
}
return array
}
8条答案
按热度按时间j91ykkif1#
map()
在str
中迭代Character
sString($0)
将Character
转换为String
.toInt()
将String
转换为Int
。如果失败(??
),请使用0
。如果你喜欢
for
循环,试试:或者,如果你想迭代
String
的索引:hwazgwia2#
您可以使用flatMap将字符转换为字符串,并将字符串强制转换为整数:
Swift 2或3
雨燕4
Swift 4.1
Swift 5或更高版本
我们可以使用新的字符属性
wholeNumberValue
https://developer.apple.com/documentation/swift/character/3127025-wholenumbervalueSwift 5.2或更高版本Key Path Expressions as Functions
9jyewag03#
@rintaro的答案是正确的,但我只是想补充一点,你可以使用
reduce
来清除任何不能转换为Int
的字符,甚至在发生这种情况时显示一条警告消息:其优点是:
intArray
包含零,您将知道str
中有一个0
,而不是其他变成零的字符Int
字符,是可能搞砸的事情。pzfprimi4#
雨燕3
Int数组到String
String到Int数组
dba5bblo5#
要让
iterator
从string
指向char
,可以使用advance
在Swift中将
string
转换为int
的方法是toInt()
t3irkdon6#
Swift 3更新:
@appzYourLife:这是正确的
toInt()
方法不再适用于Swift 3中的String。作为替代方案,您可以做的是:将其包含在
Int()
中会将其转换为Int。unhi4e5o7#
Swift 3:函数式方法
1.使用以下命令将
String
拆分为单独的String
示例:components(separatedBy separator: String) -> [String]
引用:返回一个数组,其中包含String中被给定分隔符分隔的子字符串。
1.在转换为
Int
时,使用flatMap
Array
方法绕过nil
合并引用:返回一个数组,该数组包含使用此序列的每个元素调用给定转换的非空结果。
执行情况
yzxexxkh8#