[JAVA] Scanner 입력 알아보기
Scanner
자바로 코딩테스트를 공부하게 되면서 입출력 방법부터 다시 공부하기로 하였다.
자바의 입력받는 방법인 Scanner에 대해 알아보고자 한다.
Scanner란?
- java.util.Scanner
- 파일, 문자열 등 다양하게 데이터를 읽어들일 수 있다.
- 대량으로 처리 시에는 느려 수행시간에서 비효율적이다.
Scanner 메서드
- nextInt()
- 구분자는 공백문자 (space, tab, \n)
- nextDouble()
- 구분자는 공백문자 (space, tab, \n)
- next()
- 구분자는 공백문자 (space, tab, \n)
- nextLine()
- 구분자는 개행문자(\n)
만약 입력으로 “Hello World\n”을 입력했을 떄
next()는 Hello
, World
이렇게 각각 단어만 받을 수 있고
nextLine()은 Hello World
이렇게 문장으로 띄어쓰기를 포함하여 받을 수 있다
next()
1
2
3
4
5
6
Scanner sc = new Scanner(System.in);
System.out.println("정수, 실수, 문자열을 차례로 입력하세요.");
System.out.println("읽은 정수: " + sc.nextInt());
System.out.println("읽은 실수: " + sc.nextDouble());
System.out.println("읽은 문자열: " + sc.next()); //White space를 만나면 종료
- next()는 구분자(white space) 직전까지 값을 읽은 후 유효문자만 출력한다.
- “안 \n녕\n” 일 때, “안(공백)\n” 에서 안까지 읽는 것이다.
nextLine()
1
2
Scanner sc = new Scanner("하 \n이\n");
System.out.print("nextLine() 출력값 : \""+sc2.nextLine())
- nextLine()는 구분자로 “\n”을 인식한다.
- 위의 경우일 때는 “하(공백)\n”에서 하(공백) 을 읽는 것이다.
next, nextLine() 함께 사용
1
2
3
4
Scanner sc = new Scanner(System.in);
System.out.println("나이 : " + sc.nextInt());
sc.nextLine(); //남아있는 구분자 제거
System.out.println("이름 : " + sc.nextLine());
- C언어를 공부했다면 값을 입력받을 때, 뒤에 “\n”을 삭제해줬던 것을 기억할 것이다.
- nextLine()를 사용해 구분자(\n)을 삭제할 수 있다.
This post is licensed under CC BY 4.0 by the author.