본문 바로가기
Language/Java

스캐너 오류 발생 시 해결 방법 체크 (인덱스 index)

by 쿠키오빠 2024. 9. 3.
반응형

Scanner란 사용자가 직접 입력하는 방식인데

임포트가 되었다는 가정하에 Scanner 호출 시에는

Sccaner 변수 = new Sccaner(System.in); → 최초에 스캐너로 입력 받겠다 선언

1. 변수.nextLine(); → 문자 열로 입력 받겠다.

2. 변수.next(); → 문자로 입력 받겠다.

---

보통 nexLine(문자열)을 많이 사용하지만 new next(문자)로 사용할 때 scanner 오류 발생 상황을 체크해 보자

컴파일 에러가 발생하고 있지 않는다. → 번역에는 문제가 없다.

  • hi만 입력을 하고 정수를 입력하면 정상적으로 동작을 한다. 하지만, hi world를 입력하게 되면 숫자를 입력하지 않았음에도 InputMismatch 오류가 발생한다.

해결 방법

→ 공백이 있는 문자열을 입력해야 된다 = nextLine()을 쓰면 된다.

→ sc.nextLine();을 호출 중간에 넣어만 줘도 해결이 된다.

---

알아 둘 것

인덱스(Index)

코딩을 한다면 index 값에 익숙해 져야 한다.

우리는 보통 1부터 숫자를 읽지만 코딩에서는 index 값을 기본 적용 하므로 0부터 시작한다.

- charAt(0)이면 index 숫자로 첫번째 글자가 출력되고, (hi 입력 시 h 출력)

- charAt(1)이면 index 숫자로 두번째 글짜가 출력된다. ( hi 입력 시 i 출력)

index 값 예시 → “안녕하세요” 에서 3번째 값은 “세” 이다. (안 : 0 / 녕 : 1 / 하 : 2 / 세 : 3 / 요 : 4)

/\*  문자형 값 입력 받기 _/  
/_ comment. 아쉽게도 문자를 직접 입력받는 기능은 없다. 따라서 문자열로 입력을 받은 후 입력받은 문자에서  
\* 원하는 순번의 문자를 분리해서 사용을 해야한다. \*/  
sc.nextLine();  
System.out.print("아무 문자나 입력해 주세요 : ");  
char ch = sc.nextLine().charAt(0);  
System.out.println("입력하신 문자는 " + ch + " 입니다.");  
반응형