小编典典

如何从标准输入逐行读取?

java

从标准输入逐行读取的Scala配方是什么?类似于等效的Java代码:

import java.util.Scanner;

public class ScannerTest {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            System.out.println(sc.nextLine());
        }
    }
}

阅读 213

收藏
2020-11-01

共1个答案

小编典典

最直接的前瞻性的方式将只使用readLine()它的一部分Predef。但是,这很丑陋,因为您需要检查最终的空值:

object ScannerTest {
  def main(args: Array[String]) {
    var ok = true
    while (ok) {
      val ln = readLine()
      ok = ln != null
      if (ok) println(ln)
    }
  }
}

这太冗长了,您宁可使用它java.util.Scanner

我认为将使用更漂亮的方法scala.io.Source

object ScannerTest {
  def main(args: Array[String]) {
    for (ln <- io.Source.stdin.getLines) println(ln)
  }
}
2020-11-01