반응형
표준 입력에서 한 줄씩 읽는 방법은 무엇입니까?
표준 입력에서 한 줄씩 읽는 Scala 레시피는 무엇입니까? 동등한 자바 코드와 같은 것 :
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
. 그러나 최종 null 값을 확인해야하므로 다소 추악합니다.
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)
}
}
콘솔의 경우 Console.readLine
. 다음과 같이 쓸 수 있습니다 (빈 줄에서 중지하려는 경우).
Iterator.continually(Console.readLine).takeWhile(_.nonEmpty).foreach(line => println("read " + line))
입력을 생성하기 위해 파일을 분류하는 경우 다음을 사용하여 null 또는 비어있는 상태에서 중지해야 할 수 있습니다.
@inline def defined(line: String) = {
line != null && line.nonEmpty
}
Iterator.continually(Console.readLine).takeWhile(defined(_)).foreach(line => println("read " + line))
val input = Source.fromInputStream(System.in);
val lines = input.getLines.collect
사용할 수 없습니다
var userinput = readInt // for integers
var userinput = readLine
...
여기에서 사용 가능 : Scaladoc API
재귀 버전 (컴파일러가 힙 사용 개선을 위해 꼬리 재귀를 감지 함)
def read: Unit = {
val s = scala.io.StdIn.readLine()
println(s)
if (s.isEmpty) () else read
}
Note the use of io.StdIn
from Scala 2.11 . Also note with this approach we can accumulate user input in a collection that is eventually returned -- in addition to be printed out. Namely,
import annotation.tailrec
def read: Seq[String]= {
@tailrec
def reread(xs: Seq[String]): Seq[String] = {
val s = StdIn.readLine()
println(s)
if (s.isEmpty()) xs else reread(s +: xs)
}
reread(Seq[String]())
}
참고URL : https://stackoverflow.com/questions/4585655/how-to-read-from-standard-input-line-by-line
반응형
'Programing' 카테고리의 다른 글
SQL Developer에 새 연결을 추가 할 때 Oracle TNS 이름이 표시되지 않음 (0) | 2020.09.04 |
---|---|
Android 인 텐트 필터 : 앱을 파일 확장자와 연결 (0) | 2020.09.04 |
자바에서 객체를 삭제 하시겠습니까? (0) | 2020.09.04 |
Graphite 이외의 통계 데이터 용 GUI? (0) | 2020.09.04 |
jQuery를 사용하여 실패시 AJAX 요청을 재 시도하는 가장 좋은 방법은 무엇입니까? (0) | 2020.09.04 |