2013-07-23 30 views
0

我正在研究一個程序,讀取一個文件,並從這個文件,我需要得到的數字按特定的順序。從文件提取格式化輸入在斯卡拉

所有數字在同一行上,並由製表符分隔。就像這個例子:

d  s  a  m 
2  1  0  1 
3  2  1  1 

在C++中,應該是一個是:

unsigned d, s, a; 
infile >> d >> s >> a; 

但我在斯卡拉是新的,所以我不知道該怎麼辦。

我正在使用scala.io.Source。

回答

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

或各種其他的東西。

+0

謝謝。它在我在Scala控制檯中試用時有效,但當我嘗試使用我的程序時,在分割過程中出現異常。我會做更多的測試。 – Backslash

+0

好吧,它現在正常工作。非常感謝。 – Backslash