Swift: 将数组转换为字符串
问题:如何将数组转换为字符串?
原因:在某些情况下,我们需要将一个数组转换为字符串,以便更方便地处理和展示数据。
解决方法:
1. 使用Swift的map和joined方法来实现数组转换为字符串的功能。
2. 首先,使用map方法将数组中的每个元素都转换为字符串。
3. 然后,使用joined方法将所有的字符串元素连接在一起,使用指定的分隔符进行分隔。
4. 最后,将得到的字符串赋值给目标字符串变量。
具体代码如下:
let array = [1,2,3,4]
let string = array.map(String.init).joined(separator: ", ") // "1, 2, 3, 4"
以上就是将数组转换为字符串的解决方法。
问题的出现原因:将一个数组转换为一个字符串。
解决方法:
1. 使用map函数将数组中的数字转换为字符串,并使用joined函数将它们连接为一个单独的字符串,可以指定每个字符串之间的分隔符。
2. 如果要在UI中显示这些数字,并且可能需要使用小数点和/或千位分隔符,可以使用NumberFormatter来以本地化的格式显示结果。
3. 如果想要以"A, B, and C"的形式进行漂亮的显示,在iOS 13+和/或macOS 10.15+中可以使用ListFormatter。
示例代码如下:
let array = [1.0, 1.1, 1.2, 1.3]
// 方法一
let string = array.map { String($0) }
.joined(separator: ", ")
// 方法二
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.maximumFractionDigits = 2
formatter.minimumFractionDigits = 2
let string = array.compactMap { formatter.string(for: $0) }
.joined(separator: ", ")
// 方法三
let strings = array.compactMap { formatter.string(for: $0) }
if let result = ListFormatter().string(from: strings) {
print(result)
}
输出结果:
方法一:
1.0, 1.1, 1.2, 1.3
方法二:
对于美国用户:
1.00, 1.10, 1.20, 1.30
对于德国用户:
1,00, 1,10, 1,20, 1,30
方法三:
1.00, 1.10, 1.20, and 1.30