Scanner 클래스 ; 사용자로부터 입력되는 정수, 실수, 문자열을 처리하는 클래스
Scanner은 자바에서 제공하고 있는 클래스로 사용자가 키보드로 입력한 값을 읽어들일 수 있다.
다른클래스에 있는 메소드 호출시에는
* 1)클래스 생성
* 2)메소드 호출
Scanner sc = new Scanner(System.in); // 클래스 생성
import java.util.Scanner // import구문을 사용해 메소드 호출
//문자열 입력받을때 -> sc.nextLine()
//정수값 입력받을때 -> sc.nextInt()
//실수값 입력받을때 -> sc.nextDouble()
*예외 문자값을 입력받을때
//char gender = sc.nextChar(); (X)
//-> 문자값을 읽어들이고자 할 경우
//먼저 문자열로 읽어들인 후 특정 인덱스의 문자 하나만 추출
char gender = sc.nextLine().charAt(0);
//문자열.charAt(뽑고자하는 인덱스); -> 해당 문자열로 부터 해당인덱스의 문자 하나를 추출
//문자열의 부적절한 인덱스 접근시(범위 벗어난)
// StringIndexOutOfBoundsException 예외 발생
*Scanner사용시 오류
* 주소란에 빈 문자열이 들어가는 이유
nextLine()제외한 nextInt(). nextDouble()은 입력버퍼에 입력된 엔터를 비워주지 않음.
nextInt()에 나이 입력후 입력된 엔터가 다음 주소입력시 엔터가 남아있기때문에(입력이 되었다고 간주되어) 주소를 입력할 수 없게됨
*해결방법
nextInt() , nextDouble() 이후 버퍼에 남아있는 엔터를 지우기위해 sc.nextLine(); 호출하여 남아있던 엔터를 지움
'JAVA' 카테고리의 다른 글
2_3 Printf (0) | 2022.10.18 |
---|---|
3. 연산자 (0) | 2022.10.17 |
2_2 Scanner (0) | 2022.10.14 |
2_1. 변수 (0) | 2022.10.14 |
1. JAVA 프로젝트, 패키지, 클래스, 메소드 (0) | 2022.10.12 |