프로젝트 공부

(TIL) Scanner/ 형변환

jojelly 2020. 7. 15. 20:45
반응형

java scanner 란 사용자가 값을 입력할 수 있게 해준다.

-import java.util.*; 로 임포트 해준 후 Scanner클래스의 객체를 생성한다.

Scanner scanner = new Scanner(System.in);

 

 

-다음 nextLine() 메서드를 호출하면, 콘솔창에서 키보드 입력을 대기하는 커서가 활성화된다. 이것을 입력대기 상태라고 한다.

-이후 사용자가 키보드로 입력을 모두 끝내고 ‘엔터키(Enter) ’를 누르면 입력한 내용이 문자열로 반환된다.

 

 

Ex.)

String input = scanner.nextLine(); // 입력받은 한 줄의 내용을 input 에 저장

int num = Integer.parselnt(input); // 입력받은 내용을 int 타입의 값으로 변환

 

 

위의 예제는 문자열 타입으로에서 입력을 받았는데  문자열을 숫자로 변환하려면

Integer.parselnt() 라는 메소드를 이용해야한다. 이 메서드는 문자열을 int타입의 정수로 변환한다.

 

 

*참고*

사실 Scanner클래스에는 nextInt() 나 nextFloat() 와 같이 변환없이

숫자로 바로 입력받을 수 있는 메소드들이 있고,

아래의 예제와 같은 메소드를 사용하면 문자열을 숫자로 변환하지 않아도 된다.

EX) int num = scanner.nextlnt() ; // 정수를 입력받아서 변수 num 에 저장함

 

 

 

  • next() : 공백 이전의 문자열 받기
  • nextInt() : 공백 이전의 정수 받기
  • netxtDouble() : 공백 이전의 실수 받기
  • nextLine() : 문자열 전체 입력 받기 ( 입력값에 공백을 받을 여지가 있다면 이것을 선택)
  • nest().charAt(0) : 문자 하나 입력 받기
  • hasNextInt() : 만약 입력한 값이 int 형이 아닐 경우는 false를 리턴하고, int로 표현할 수 있는 형식의 숫자형인 경우는 true를 리턴한다. 따라서 위의 코드는 사용자가 입력을 할 때가지 실행을 기다렸다가 입력이 일어나면 문자열을 읽는다. (입력값 : 123 456 789 //출력 123 456 789 , 입력값 : 123 ddd 567 // 출력 123)

 

그러나 이 메서드는 화면에서 연속적으로 값을 입력받아서 사용하기에 까다롭다.

차라리 모든 값을 nextLine() 메소드로 입력받아서 적절히 변환하는 것이 더 나은 경우도 있기 때문에 형 변환 메소드를 사용한다. 

 

반응형