2016-03-27 19 views
0

原因Scalaのユーザー入力で空行を捕捉する方法は?

input: 
<enter> 
<enter> 
1 

例えば、私は空行でenterを押すと、必ずプログラムは、単に次の入力が発生するのを待ち、

内の文を実行しません。次のコード

val sc = new java.util.Scanner (System.in) 
while (sc.hasNext()) { 
    var temp = sc.nextLine() 
    println(temp.nonEmpty) 
    println (temp) 
} 

を考えてみましょう

output: 
<space> 
false 
<space> 
false 
1 
true 

私はユーザーに行のリストを入力させ、空の行で終了させようとしています。

例:

1 2 3 4 
5 6 7 8 
<enter> // -> will exit 

どうすれば達成できますか?

答えて

5

を追加します。

Iterator.continually(scala.io.StdIn.readLine).takeWhile(_.nonEmpty).foreach(line => 
    println(s"read $line") 
) 
0

私は、これはもう少し慣用的だと思うif (temp.isEmpty) sys.exit(1)

関連する問題