如何在Scala的用户输入中捕获空行?

时间:2016-03-27 06:01:43

标签: scala

考虑以下代码

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

每当我按空行enter时,程序只会等待下一个输入发生并且不执行内部语句

例如

input: 
<enter>
<enter>
1

原因

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

我试图让用户输入一个行列表,然后退出空行

例如

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

我将如何实现这一目标?

2 个答案:

答案 0 :(得分:5)

我认为这有点像惯用语:

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

答案 1 :(得分:0)

添加if (temp.isEmpty) sys.exit(1)