Swift能够读取由几行组成的输入吗?

时间:2016-01-29 18:15:01

标签: arrays string swift

所以,输入看起来像这样:

1 2  
3 4  
5 6  
7 8  

我需要将每一行存储为数组,如下所示:

[1, 2]
[3, 4]
[5, 6]
[7, 8]

我想我可以使用.componentsSeparatedByString(" ")执行此操作,然后将每个元素转换为整数。

问题是,我尝试使用readLine(),但它只存储第一行,1。我已经考虑过做一个while循环,但我的输入可以包含超过50行,并且进入每一行都会非常不方便。

有没有办法一次将多行存储为字符串?如果我可以用;替换换行符也会很好,但我不知道如何,因为它只存储第一行。任何帮助将不胜感激。

提前致谢!

1 个答案:

答案 0 :(得分:1)

你可以使用componentsSeparatedByCharactersInSet来分解你的线条,然后映射每一行来分解你的元素,最后将它们映射到Int:

let strInput = "1 2\n3 4\n5 6\n7 8"

let numbers = strInput.componentsSeparatedByCharactersInSet(.newlineCharacterSet())
                      .map{$0.componentsSeparatedByString(" ")
                      .map{Int($0) ?? 0}} 

print(numbers)  // [[1, 2], [3, 4], [5, 6], [7, 8]]