我有一个具有以下格式的字符串:
var cadenaCoordenadas = """
1,1
1,3
4,1
5,1
1,5
1,6
2,5
0,0
"""
我想要的是每一行都采用以下格式(在数组中)进行操作(使用Int数据类型,因为我将对新字符串进行操作): [1,1]
我有以下代码:
var arregloEntradas = cadenaCoordenadas.split(separator: "\n")
print("primer Arreglo: ", arregloEntradas)
for i in stride(from: 0, through:arregloEntradas.count - 1, by: 1){
let arregloEntradasFinal = arregloEntradas[i].split(separator: ",")
print(arregloEntradasFinal)
}
我得到了这个结果:
如您所见,数组元素为字符串类型,但是我要求它们为Int类型:
[1,1]
[1,3]
[4,1]
...
希望您能帮助我,谢谢。
答案 0 :(得分:1)
这是使用一些拆分和映射的一种方法:
var cadenaCoordenadas = """
1,1
1,3
4,1
5,1
1,5
1,6
2,5
0,0
"""
let arregloEntradasFinal = cadenaCoordenadas.split(separator: "\n")
.map { $0.split(separator: ",").compactMap { Int($0) } }
print(arregloEntradasFinal)
输出:
[[1,1],[1,3],[4,1],[5,1],[1,5],[1,6],[2,5],[0,0 ]]
答案 1 :(得分:0)
var arregloEntradas = cadenaCoordenadas.split(separator: "\n")
print("primer Arreglo: ", arregloEntradas)
for i in stride(from: 0, through:arregloEntradas.count - 1, by: 1){
let arregloEntradasFinal = arregloEntradas[i].split(separator: ",").map { Int(String($0)) }
print(arregloEntradasFinal)
}
答案 2 :(得分:0)
在arregloEntradasFinal
中得到的内容是正确的,因为您正在处理字符串数组。以后,当您想再次使用arregloEntradasFinal
时,应再次用逗号分隔符arregloEntradasFinal
拆分字符串,并使用单独的Int
值。例如:
let index = 0 // You can also loop through the array
let values = arregloEntradasFinal[index].split(separator: ",")
let num1 = Int(values.first ?? 0) // If no value then returns 0
let num2 = Int(values.last ?? 0) // If no value then returns 0
注意-这是不使用map
函数的一种方式。