Ich bin kein Java-Experte und ich habe ein Problem. Ich erhalte Daten von der Tastatur mit Scanner, aber ich muss zwei Validierungen durchführen, bevor ich die Daten in meinem Array registriere. Einer ist, dass die Daten keine Zeichenfolge sein müssen, und ich verwende !in.hastNextInt()
, um die Scanner-Instanz zu validieren, und die andere ist, dass die Daten nicht 0
sein müssen. und der Code verwende ich die nächste:Java: nextInt() Validierung funktioniert nicht Eigenschaft
Scanner in = new Scanner(System.in);
int chain [] = new int [10];
System.out.println("Welcome, please enter the values for the array: ");
for(int x = 0;x < chain.length; x++) {
System.out.print((x+1) +": ");
while(!in.hasNextInt() || in.nextInt()==0) {
System.out.print("This app doesn't accept letters, symbols or zeros: ");
in.next();
}
chain[x] = in.nextInt();
}
und leider, wenn ich das Programm ausführen es fragt mich zweimal pro jede Aussage zum Beispiel fragt mich zweimal pro Position 0 des Arrays und zweimal pro Position 1 des Arrays.
Hat jemand eine Idee von dem, was passiert? Es arbeitet perfekt mit !in.hasNextInt()
aber wenn im in.nextInt()==0
Verwendung gibt mir das Problem, oder wenn ich in.nextInt()==0
allein
nur verwenden, was mein Fehler ist und was tun Sie mir empfehlen in meinem Code zu ändern, um es gut zu arbeiten. Ich schätze jede Hilfe
Vielen Dank im Voraus
als @Andreas in seiner Antwort sagte ich ist musste meinen Code und die neuen guten ändern:
for(int x = 0;x < chain; x++) {
System.out.print((x+1) +": ");
while(!in.hasNextInt()) {
System.out.print("This app doesn't accept letters or symbols: ");
in.next();
}
chain[x] = in.nextInt();
if(chain[x] == 0) {
System.out.println("This app doesn't accept 0");
--x;
}
}
Vielen Dank, jetzt habe ich eine Idee, aber in diesem Moment bin ich im öffentlichen Verkehr. Ich werde versuchen, was Sie in ein paar Stunden sagen und Ihnen sagen, ob es funktioniert. :) –
Danke für Hilfe, ich habe meinen Code geändert und es funktioniert. Ich danke dir sehr. Sie können das neue als Antwort sehen –