从标准输入逐行读取的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()); } } }
最直接的前瞻性的方式将只使用readLine()它的一部分Predef。但是,这很丑陋,因为您需要检查最终的空值:
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。
java.util.Scanner
我认为将使用更漂亮的方法scala.io.Source:
scala.io.Source
object ScannerTest { def main(args: Array[String]) { for (ln <- io.Source.stdin.getLines) println(ln) } }