Guten Tag,
ich komme hier nicht wirklich weiter
Möchte mir eine Methode schreiben die Überprüft ob ein String richtig geklammert ist.
Also z. B. ist dieser String richtig geklammert: 3+(4-5[as])%()[[(bfg)]] falsch wäre sowas: ([dfdf)a] da die Runde klammer später zu gehen muss. Hier ist mal mein Anfang. Bis jetzt habe ich nur überprüft ob die summe der Klammern stimmen sprich wenn eine Runde, Eckige oder Geschweifte Klammer auf geht muss auch wieder eine zu gehen wenn mehr zu gehen ist es Falsch.
Doch wie mache ich das nun wenn sich eine Klammer vordrängeln würde. Hat da jemand einen Tipp?
Danke im voruas
lG
ich komme hier nicht wirklich weiter
Möchte mir eine Methode schreiben die Überprüft ob ein String richtig geklammert ist.
Also z. B. ist dieser String richtig geklammert: 3+(4-5[as])%()[[(bfg)]] falsch wäre sowas: ([dfdf)a] da die Runde klammer später zu gehen muss. Hier ist mal mein Anfang. Bis jetzt habe ich nur überprüft ob die summe der Klammern stimmen sprich wenn eine Runde, Eckige oder Geschweifte Klammer auf geht muss auch wieder eine zu gehen wenn mehr zu gehen ist es Falsch.
Doch wie mache ich das nun wenn sich eine Klammer vordrängeln würde. Hat da jemand einen Tipp?
Java:
String s="[as(dd])f)adf()";
char[] c=s.toCharArray();
int rcounter=0;
int ecounter=0;
int gcounter=0;
for(int i=0;i<c.length;i++) {
if(c[i]=='(')
rcounter++;
else if(c[i]=='[')
ecounter++;
else if(c[i]=='{')
gcounter++;
else if(c[i]=='}') {
gcounter--;
if(gcounter<0)
System.out.println("Fehler");
}
else if(c[i]==']') {
ecounter--;
if(ecounter<0)
System.out.println("Fehler");
}
else if(c[i]==')') {
rcounter--;
if(rcounter<0)
System.out.println("Fehler");
}
}
Danke im voruas
lG