快速将字符串元素转换为数组中的int元素

时间:2019-06-07 02:58:06

标签: swift

我有一个具有以下格式的字符串:

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)
}

我得到了这个结果:

this is the result

如您所见,数组元素为字符串类型,但是我要求它们为Int类型:

[1,1]
[1,3]
[4,1]
...

希望您能帮助我,谢谢。

3 个答案:

答案 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函数的一种方式。