2017-05-08 9 views
0

스캐너를 사용하여 페이지에서 텍스트를 읽으려고했습니다. 페이지의 필드 중 하나를 int로 저장해야하며 스캐너가 줄의 마지막 정수에 도달하면 공백으로 구분되지 않는 텍스트도 선택됩니다.문자를 제거하기 위해 부분 문자열 조작 후 이상하게 작동하는 parseInt()

String x=sc.next();//sc is the scanner 
x=x.substring(0,x.length()-4);//the text is always 4 characters long 
int x=Integer.parseInt(x); 

이 코드는 NumberFormatException 예외 :이 문제를 해결하려면, 나는 다음과 같은 코드가 있습니다. 어리석은 오류를 만들고 있는지 확인하기 위해 끝에서 5 문자를 제거하려고했으나 번호의 일부가 제거되었습니다. 미리 감사드립니다.

+2

프로그램에 입력 할 텍스트의 예가 있습니까? –

+0

3495845997qwer 행을 따라 뭔가 – CMonster

답변

2

문제는 3495845997int이 아닙니다. Java의 정수는 최대 값이 2147483647입니다. 대신 Long.parseLong(x)을 사용해보세요.

1

구문 분석 할 숫자가 너무 커서 Integer에 포함될 수 없습니다. 시도해보십시오

long y=Long.parseLong(x);