2013-07-23 2 views
0

Я работаю над программой, которая читает файл, и из этого файла мне нужно получить числа в определенном порядке.извлечение форматированного ввода из файла в scala

Все номера находятся на одной линии и разделены таблицей. Как и в этом примере:

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.

ответ

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, но у меня есть исключение во время split, когда я пытаюсь выполнить свою программу. Я сделаю больше тестов. – Backslash

+0

Хорошо, сейчас все в порядке. Большое спасибо. – Backslash

Смежные вопросы