[자바 기초] 1. Scanner 클래스

혜연·2024년 10월 17일
0

Java

목록 보기
1/1
post-thumbnail

Scanner

Scanner 클래스는 사용자와 상호작용할 때 중요한 도구로 사용된다. 사용자에게 질문을 던지고, 이에 대한 사용자의 답변을 받아오는 프로그램과 사용자 간의 대화 창구 역할이다.

예를 들어, 간단한 계산기를 만들 때, 프로그램은 이렇게 묻는다.

System.out.print("첫 번째 숫자를 입력하세요: ");

이때, scanner는 질문을 받아서 사용자로부터 입력을 받는거다.


1. next() : 단어 하나를 입력받는 메서드

이 메서드는 사용자로부터 단어 하나를 입력받을 때 사용한다. 예를 들어, 간단한 사용자 인증 시스템을 만들 때 이름을 입력받을 수 있다.

String name = scanner.next();

중요한 점은 next()공백(스페이스)나 개행(엔터) 을 기준으로 단어 하나를 가져온다는 점! 사용자가 "혜연 바보"를 입력하면, "혜연"만 가져오게 됨


2. nextLine() : 전체 문장을 가져오는 메서드

단어 하나가 아니라 문장 전체를 가져올 때, nextLine() 메서드를 사용한다. 엔터 키가 눌릴 때까지 입력된 모든 것을 가져온다. 예를 들어, 투두 리스트 시스템에서 사용자의 할 일을 문장으로 입력받을 때 유용하다.

String task = scanner.nextLine(); 

3. nextInt() : 숫자를 입력받는 메서드

사용자에게 숫자를 물을 때는 nextInt()를 사용한다.

int num1 = scanner.nextInt(); 

여기서 주의할 점은,nextInt()숫자만 가져오기에 개행 문자(엔터)는 남게된다. 그래서 나중에 문자열을 입력받고 싶다면, 개행문자를 처리하기 위해 nextLine()을 사용해야 한다.


4. nextDouble() : 소수점이 있는 숫자를 입력받

는 메서드
사용자에게 실수(소수점이 있는 숫자)를 입력받을 때는 nextDouble()을 사용한다.

double price = scanner.nextDouble(); 

5. nextBoolean() : 참 또는 거짓을 입력받는 메서드

프로그램이 참 또는 거짓의 질문을 던져야 할 때, 예를 들어 "계산기를 계속 사용하겠습니까? (y/n)" 처럼, nextBoolean()이 사용된다. 이 메서드는 true, false 값만 입력받는다.

boolean running = scanner.nextBoolean(); 

6. charAt(0) : 문자열의 첫 번째 문자를 가져오기

전체 문자열 중 첫 글자만 가져오고 싶을 때, charAt(0)을 사용한다.

char choice = scanner.next().charAt(0);

사용자가 "yes"를 입력하더라도, "y"만 사용하게 되는 거다.


7. hasNext()와 HasNextLine() : 다음 입력이 있는지 확인

마지막으로, 프로그램이 입력을 기다리는 동안 입력이 더 있는지 확인하는 메서드이다. hasNext()는 다음 단어가 있는지 확인하고, HasNextLine()은 다음에 줄 단위의 입력이 있는지 확인한다. 이들은 파일을 읽거나 긴 입력을 처리할 떄 유용하게 사용된다.

while(scanner.hasNextLine(0){
	String line = scanner.nextLine();
}

마무리:

Scanner 클래스는 자바 프로그램에서 입력을 쉽게 처리할 수 있는 도구이다. 위에서 살펴본 메서드들을 적절하게 사용해 프로그램과 사용자 간의 상호작용을 보다 효율적으로 맏들 수 있을 것

0개의 댓글