Swift:将数组转成字符串
Swift: Turn array into String
如何将数组(例如 [Int]
转换为在元素之间保持逗号的字符串?如果我有一个像 [1,2,3,4]
这样的数组,我想接收一个像 "1, 2, 3, 4"
这样的字符串。
您只需要将整数映射到字符串并使用分隔符连接它们 ", "
let array = [1,2,3,4]
let string = array.map(String.init).joined(separator: ", ") // "1, 2, 3, 4"
你可以这样做:
let string = array.map { String([=10=]) }
.joined(separator: ", ")
map
调用将数字数组转换为字符串数组,joined
将它们组合成一个字符串,在各个字符串之间使用您想要的任何分隔符。
或者,如果要在 UI 中显示,数字可能需要小数点 and/or 千位分隔符,那么最好使用 [=15] 以本地化格式显示结果=]:
let array = [1.0, 1.1, 1.2, 1.3]
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.maximumFractionDigits = 2
formatter.minimumFractionDigits = 2
let string = array.compactMap { formatter.string(for: [=11=]) }
.joined(separator: ", ")
对于美国用户,这将导致:
1.00, 1.10, 1.20, 1.30
但对于德国用户,这将导致:
1,00, 1,10, 1,20, 1,30
如果您希望在 iOS 13+ and/or macOS 10.15+ 中将其很好地呈现为“A、B 和 C”,您可以使用 ListFormatter
:
let array = [1.0, 1.1, 1.2, 1.3]
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.maximumFractionDigits = 2
formatter.minimumFractionDigits = 2
let strings = array.compactMap { formatter.string(for: [=12=]) }
if let result = ListFormatter().string(from: strings) {
print(result)
}
导致:
1.00, 1.10, 1.20, and 1.30
如何将数组(例如 [Int]
转换为在元素之间保持逗号的字符串?如果我有一个像 [1,2,3,4]
这样的数组,我想接收一个像 "1, 2, 3, 4"
这样的字符串。
您只需要将整数映射到字符串并使用分隔符连接它们 ", "
let array = [1,2,3,4]
let string = array.map(String.init).joined(separator: ", ") // "1, 2, 3, 4"
你可以这样做:
let string = array.map { String([=10=]) }
.joined(separator: ", ")
map
调用将数字数组转换为字符串数组,joined
将它们组合成一个字符串,在各个字符串之间使用您想要的任何分隔符。
或者,如果要在 UI 中显示,数字可能需要小数点 and/or 千位分隔符,那么最好使用 [=15] 以本地化格式显示结果=]:
let array = [1.0, 1.1, 1.2, 1.3]
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.maximumFractionDigits = 2
formatter.minimumFractionDigits = 2
let string = array.compactMap { formatter.string(for: [=11=]) }
.joined(separator: ", ")
对于美国用户,这将导致:
1.00, 1.10, 1.20, 1.30
但对于德国用户,这将导致:
1,00, 1,10, 1,20, 1,30
如果您希望在 iOS 13+ and/or macOS 10.15+ 中将其很好地呈现为“A、B 和 C”,您可以使用 ListFormatter
:
let array = [1.0, 1.1, 1.2, 1.3]
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.maximumFractionDigits = 2
formatter.minimumFractionDigits = 2
let strings = array.compactMap { formatter.string(for: [=12=]) }
if let result = ListFormatter().string(from: strings) {
print(result)
}
导致:
1.00, 1.10, 1.20, and 1.30