article thumbnail image
Published 2022. 10. 14. 11:08

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
복사했습니다!