Hallo,
erstmal hoffe ich, dass "Java Basics" das richtige Forum für meine Frage ist. Bitte darauf hinweisen, falls dem nicht so ist. Ich programmiere derzeit einen ganz simplen Automaten, der die Methode "zeichenkettePruefen" besitzt, welche für die Zeichenkette "10" true ausgeben soll und für alle anderen Zeichenketten false. Nach meiner Logik müsste der Automat auch funktionieren, da ich keinen Fehler finden kann und schon einiges ausprobiert habe (bin Anfänger, also wahrscheinlich gibt es da schon noch Dinge die ich probieren könnte).
Das ist mein Quellcode:
Vielen Dank schonmal im Vorraus!
FinnJ
erstmal hoffe ich, dass "Java Basics" das richtige Forum für meine Frage ist. Bitte darauf hinweisen, falls dem nicht so ist. Ich programmiere derzeit einen ganz simplen Automaten, der die Methode "zeichenkettePruefen" besitzt, welche für die Zeichenkette "10" true ausgeben soll und für alle anderen Zeichenketten false. Nach meiner Logik müsste der Automat auch funktionieren, da ich keinen Fehler finden kann und schon einiges ausprobiert habe (bin Anfänger, also wahrscheinlich gibt es da schon noch Dinge die ich probieren könnte).
Das ist mein Quellcode:
Java:
[/B]
public class AUTOMAT{
int zustand;
AUTOMAT(){
zustand = 0;
// System.out.println("Zeichenketten müssen exakt 2 Ziffern enthalten und aus 0 und 1 bestehen");
}
public boolean zeichenkettePruefen(String eingabe){
// zustand = 0;
for (int i = 0; i < eingabe.length(); i++){
switch(zustand){
case 0:
switch(eingabe.charAt(0)){
case '1':
zustand = 1;
break;
case '0':
zustand = 3;
break;
}
case 1:
switch(eingabe.charAt(0)){
case '1':
zustand = 3;
break;
case '0':
zustand = 2;
break;
}
case 2:
switch(eingabe.charAt(0)){
case '1':
zustand = 3;
break;
case '0':
zustand = 3;
break;
}
case 3:
switch(eingabe.charAt(0)){
case '1':
zustand = 3;
break;
case '0':
zustand = 3;
break;
}
}
eingabe = eingabe.substring(1);
}
if (zustand == 2){
return true;
}
else{
return false;
}
}
}
[B]
Vielen Dank schonmal im Vorraus!
FinnJ