Everyday Dev System

0522_TIL : nextFloat() 문자열 입력 오류 해결 본문

내배캠 주요 학습/TIL : Today I Learned

0522_TIL : nextFloat() 문자열 입력 오류 해결

chaeyoung- 2023. 5. 23. 10:45

        Scanner sc = new Scanner(System.in);
        String cookName = sc.nextLine();
        float rate = sc.nextFloat();
        sc.nextLine();
        String contentLine1 = sc.nextLine();

# 문제점 : nextFloat() 다음에 문자열 입력이 공백인 경우

 

# 시도:

System.out.println()를 해봐도 안되고,

nextFloatLine 같은건 없는지 찾아봤지만 해결되지 않았다.

sc.next();도 해결이 안됨..

 

# 해결방법: sc의 커서를 다음줄로 넘겨줘야 한다.

 

nextLine을 하지 않는 코드에서

입력시 4.5를 입력받고 Enter치고 다음줄에 문자열을 입력하는 경우라면,

rate 저장하고 다음 문자열이 공백으로 입력된다.

sc.nextFloat()를 하고나서 커서가 다음줄로 넘어가지 않아서 그런것이다.

 

nextLine은 엔터를 친 기준까지 입력을 받는 메서드이고,

nextFloat는 엔터를 기준으로 하지 않기 때문에 nextLine을 한번 해줘야 하는 것이다.