从scala中的文件中提取格式化的输入

时间:2013-07-23 13:30:37

标签: file scala input io extract

我正在研究一个读取文件的程序,从这个文件中,我需要按特定顺序获取数字。

所有数字都在同一行,并以制表分隔。就像在这个例子中一样:

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。

1 个答案:

答案 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))

或其他各种事情。