hi!
ich habe folgendes Problem:
meine aufgabe ist es, ein programm zu schreiben das mithilfe eines stacks die paarigkeit von klammern prüft, indem es jedes zeichen eines teststrings prüft. ist das zeichen eine öffnende klammer, so wird es auf den stack abgelegt, ist es eine schließende, so wird das zeichen wieder entfernt.
das prinzip ist mir klar und ich habe auch einen ansatz, aber komme mit der umsetzung in java nicht klar...
public class Stack {
String stringArray[] = new String[1000]; //ich weiß nicht ob ich beide felder brauche, das obere ist in der aug.-
static String Stack[] = new String[1000]; //stellung gegeben, das andere nicht
public String pop(){
//nehme zeichen und setze es an oberste stelle des stacks
}
public void push(String s){
//entferne das zuletzt auf stack abgelegte element
}
public boolean empty(){ // fehlermeldung return-statement fehlt
for(int i=0;i<Stack.length;i++){
if(Stack==" "){
return true;
}else return false;
}
}
}
und:
public class StackTest {
static String testProgramm = "public class Main{ public static void main(String[] args){System.out.println(\"Hallo,Welt!\\n\");}}";
public static void main(String[] args){
for(int i=0; i<testProgramm.length(); i++){
push(testProgramm.charAt(i)); // fehlermeldung puch(char) undefined for type Stack Test
if(testProgramm.charAt(i) =="(" || "{" || "["){ // Incompatible operand types char and String
//push()...
}
if(testProgramm.charAt(i) ==")" || "}" || "]") // Incompatible operand types char and String
// pop()...
}
}
}
ist mein bisheriger ansatz.
wäre supi wenn mir schnell jemand helfen könnte :shock:
ich habe folgendes Problem:
meine aufgabe ist es, ein programm zu schreiben das mithilfe eines stacks die paarigkeit von klammern prüft, indem es jedes zeichen eines teststrings prüft. ist das zeichen eine öffnende klammer, so wird es auf den stack abgelegt, ist es eine schließende, so wird das zeichen wieder entfernt.
das prinzip ist mir klar und ich habe auch einen ansatz, aber komme mit der umsetzung in java nicht klar...
public class Stack {
String stringArray[] = new String[1000]; //ich weiß nicht ob ich beide felder brauche, das obere ist in der aug.-
static String Stack[] = new String[1000]; //stellung gegeben, das andere nicht
public String pop(){
//nehme zeichen und setze es an oberste stelle des stacks
}
public void push(String s){
//entferne das zuletzt auf stack abgelegte element
}
public boolean empty(){ // fehlermeldung return-statement fehlt
for(int i=0;i<Stack.length;i++){
if(Stack==" "){
return true;
}else return false;
}
}
}
und:
public class StackTest {
static String testProgramm = "public class Main{ public static void main(String[] args){System.out.println(\"Hallo,Welt!\\n\");}}";
public static void main(String[] args){
for(int i=0; i<testProgramm.length(); i++){
push(testProgramm.charAt(i)); // fehlermeldung puch(char) undefined for type Stack Test
if(testProgramm.charAt(i) =="(" || "{" || "["){ // Incompatible operand types char and String
//push()...
}
if(testProgramm.charAt(i) ==")" || "}" || "]") // Incompatible operand types char and String
// pop()...
}
}
}
ist mein bisheriger ansatz.
wäre supi wenn mir schnell jemand helfen könnte :shock: