Hallo,
Aufgabe ist folgende gewesen;
Arithmetische Ausdrücke. Wir betrachten nun sehr einfache arithmetische Ausdrücke. Erlaubtsind Klammern, die binären Operatoren „+“, „-“, “*“, “/“, sowie Zahlen mit einer einzelnen Ziffer(„0“,“1“,...,“9“). Erlaubt wäre also z.B.: „1+2+3“ oder „(1+2)*3+(4-7)“. Verboten wären dagegen„23+42“, „-4“ (unäres Minus erlauben wir nicht) oder „2++“, und natürlich auch falsche Klammerungenwie „((3+2)“. Leere Klammern machen auch keinen Sinn: „()+4“ ist verboten.Schreiben Sie ein JAVA Programm, das kontrolliert, ob ein eingegebener String das richtigeFormat hat (also nur geklammerte Ausdrücke von den vier Grundrechenarten mit Zahlen dieaus einzelnen Ziffern bestehen).
Aufgabe ist folgende gewesen;
Arithmetische Ausdrücke. Wir betrachten nun sehr einfache arithmetische Ausdrücke. Erlaubtsind Klammern, die binären Operatoren „+“, „-“, “*“, “/“, sowie Zahlen mit einer einzelnen Ziffer(„0“,“1“,...,“9“). Erlaubt wäre also z.B.: „1+2+3“ oder „(1+2)*3+(4-7)“. Verboten wären dagegen„23+42“, „-4“ (unäres Minus erlauben wir nicht) oder „2++“, und natürlich auch falsche Klammerungenwie „((3+2)“. Leere Klammern machen auch keinen Sinn: „()+4“ ist verboten.Schreiben Sie ein JAVA Programm, das kontrolliert, ob ein eingegebener String das richtigeFormat hat (also nur geklammerte Ausdrücke von den vier Grundrechenarten mit Zahlen dieaus einzelnen Ziffern bestehen).
Java:
public class Doityourself_b {
public static void main(String[] args) {
// TODO Auto-generated method stub
String Bracket_open=new String ("(2+(2*(3-5)"); //String erstellen
char [] open=Bracket_open.toCharArray(); // In Char umwandeln, um jedes Zeichen lesen zu können
if(open[0] == '(' && open[1] == '1'||open[1] == '2'||open[1] == '3'||open[1] == '4'||open[1] == '5'||open[1] == '6'||open[1] == '7'||open[1] == '8'||open[1] == '9'){
for(int i=2;i < Bracket_open.length();i++) {
try {
if(open[i] == '+'||open[i] == '-'||open[i] == '*'||open[i] == '/') {
if(open[i+1] == '1'||open[i+1] == '2'||open[i+1] == '3'||open[i+1] == '4'||open[i+1] == '5'||open[i+1] == '6'||open[i+1] == '7'||open[i+1] == '8'||open[i+1] == '9') {
if(open[i+2] == ')') {
i=i+2;
continue;
}
}
else if(open[i+1] == '(')
if(open[i+2] == '1'||open[i+2] == '2'||open[i+2] == '3'||open[i+2] == '4'||open[i+2] == '5'||open[i+2] == '6'||open[i+2] == '7'||open[i+2] == '8'||open[i+2] == '9') {
i=i+2;
continue;
}
else
System.out.println("Der Ausdruck entspricht nicht dem richtigen Format");
System.exit(0);
}
else
System.out.println("Der Ausdruck entspricht nicht dem richtigen Format");
System.exit(0);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Der Ausdruck entspricht nicht dem richtigen Format");
System.exit(0);
}
}
System.out.println("Der Ausdruck entspricht dem richtigen Format");
}
else
System.out.println("Der Ausdruck entspricht nicht dem richtigen Format");
System.exit(0);
}
}
Zuletzt bearbeitet: