所以,输入看起来像这样:
1 2
3 4
5 6
7 8
我需要将每一行存储为数组,如下所示:
[1, 2]
[3, 4]
[5, 6]
[7, 8]
我想我可以使用.componentsSeparatedByString(" ")
执行此操作,然后将每个元素转换为整数。
问题是,我尝试使用readLine()
,但它只存储第一行,1。我已经考虑过做一个while循环,但我的输入可以包含超过50行,并且进入每一行都会非常不方便。
有没有办法一次将多行存储为字符串?如果我可以用;
替换换行符也会很好,但我不知道如何,因为它只存储第一行。任何帮助将不胜感激。
提前致谢!
答案 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]]