Hi!
Ich moechte eine Abfrage machen, ob ein String Integer ist, bevor ich ihn parse, um Fehler zu vermeiden.
Ich mache das wie folgt:
Code:
public class KontoEingabeUI {
private Konto konto;
public KontoEingabeUI(Konto konto) {
this.konto = konto;
}
public Konto eingeben() {
String knummer;
String stringblz;
int kontoNummer=0;
int blz=0;
...;
do {
System.out.print("Nummer: ");
knummer = in.nextLine();
if (isInteger(knummer) ) {
kontoNummer = Integer.parseInt(knummer);
}
} while (isInteger(knummer)==false);
do {
System.out.print("Bankleitzahl: ");
stringblz = in.nextLine();
if (isInteger(stringblz)) {
blz = Integer.parseInt(stringblz);
}
} while (isInteger(stringblz)==false);
...
}
private boolean isInteger(String integ) {
boolean b=true;
boolean bool[]= new boolean[integ.length()];
for (int i=0; i<integ.length();i++) {
bool[i]=false;
for (int j=0;j<10;j++) {
if (integ.charAt(i)==j) {
bool[i]=true;
}
}
}
for (int i=0;i<integ.length();i++){
if (bool[i]==false){
b=false;
}
}
return b;
}
}
Dummerweise kaeme jetzt eine Endlos-Schleife, denn auch wenn ich Ziffern von 0..9 eigebe, werde ich erneut aufgefordert, die Nummer einzugeben und ich habe keinen Plan, wo der Fehler ist.
Danke schon mal an alle, die Licht ins Dunkel bringen!
[edit=alcaeus]Delphi-Tags durch code-Tags ersetzt. Mfg, alcaeus[/edit]