我正在研究一个读取文件的程序,从这个文件中,我需要按特定顺序获取数字。
所有数字都在同一行,并以制表分隔。就像在这个例子中一样:
d s a m
2 1 0 1
3 2 1 1
在C ++中,它应该是这样的:
unsigned d, s, a;
infile >> d >> s >> a;
但我是Scala的新手,所以我不知道该怎么做。
我正在使用scala.io.Source。
答案 0 :(得分:2)
如果您的字符串str
包含以空格分隔的数字(您可以使用getLines()
获得),则可以
val nums = str.
split("\\s+"). // Splits at whitespace into an array of strings
map(_.toInt) // Converts all elements of array from String to Int
然后如果你想拉出前三个,你可以
val Array(d,s,a) = nums.take(3)
或
val (d,s,a) = (nums(0), nums(1), nums(2))
或其他各种事情。