예전에 강의를 들을 때는 Scanner를 사용했는데 알고리즘 문제를 본격적으로 풀게 된 이후부터는 성능이 더 좋은 BufferedReader를 쓰느라 오히려 예전에 자주 쓰던 Scanner가 어색해졌다. 사이가 더 멀어지기 전에 복습을 해야될 것 같아서 정리를 하게 됐다.
Scanner scanner = new Scanner(System.in);
Scanner의 새로운 객체를 heap 메모리에 할당한 후 System.in으로 화면에서 입력을 받는다.
System.in 은 입력한 값을 Byte 단위로 읽어준다.
public void start() {
Scanner scan = new Scanner(System.in); //입력1
String str = scan.next();
String str1 = scan.nextLine();
System.out.println(str); //출력1
System.out.println(str1); //출력1
Scanner scan1 = new Scanner(System.in); //입력2
String strLine = scan1.nextLine(); //출력2
System.out.println(strLine);
}
입력1)
문자열1 문자열2
출력1)
문자열1
문자열2
입력2)
문자열1 문자열2
출력2)
문자열1 문자열2
next()
Finds and returns the next complete token from this scanner.
next()는 token을 기준으로 읽어준다.
nextLine()
Advances this scanner past the current line and returns the input that was skipped.
nextLine()은 enter 기준으로 읽어준다.
그래서 '문자열1 문자열2'로 입력하면 next()일 경우 빈 공백 없이 '문자열2'만 읽어주고
nextLine()의 경우 ' 문자열2'를 읽어준다
'java' 카테고리의 다른 글
[java 자바] exception (0) | 2023.06.22 |
---|---|
[java 자바] isEmpty() 와 isBlank() 비교 (0) | 2023.06.21 |
내부 클래스 (Inner Class) (0) | 2023.06.18 |
[java 자바] 접근 제한자 public / protected / (default) / private (0) | 2023.06.16 |
오버라이딩 overriding / super / 상속 extends / implements (0) | 2023.06.16 |