2017-05-08 4 views
0

Ich habe versucht, Text von einer Seite mit einem Scanner zu lesen. Ich muss eines der Felder auf der Seite als int speichern, und ich habe bemerkt, wenn der Scanner die letzte Ganzzahl in der Zeile erreicht, es auch Text aufnimmt, der nicht durch Leerzeichen getrennt ist. Um dieses Problem zu beheben, ich habe den folgenden Code:parseInt() seltsam nach Teilstring-Operation, um Zeichen zu entfernen

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); 

Dieser Code ein NumberFormatException wirft. Ich habe versucht, 5 Zeichen vom Ende zu entfernen, um zu sehen, ob ich einen dummen Fehler machte, aber es endete, einen Teil der Zahl zu entfernen. Vielen Dank im Voraus

+2

Haben Sie ein Beispiel für den Text, der in das Programm eingegeben wird? –

+0

etwas in der Art von 3495845997qwer – CMonster

Antwort

2

Ihr Problem ist, dass 3495845997 kein int ist. Ganzzahlen in Java haben einen maximalen Wert von 2147483647. Verwenden Sie stattdessen Long.parseLong(x).

1

Die Nummer, die Sie analysieren, ist zu groß, um in einer Ganzzahl enthalten zu sein. Versuchen Sie diese

long y=Long.parseLong(x); 
Verwandte Themen