Hi,
ich habe vor einiger Zeit ein kleines anfängliches Programm zum Gang durch ein Labyrinth schreiben müssen.
Damals habe ich dazu immer J'OptionPane verwendet. Jetzt muss ich jedoch mit Streams arbeiten.
Schwer ist die Umsetzung nicht, jedoch habe ich ein Problem.
Mein Programm:
-> egal was ich aufrufe, lande ich im letzten if-Zweig.
Die Umsetzung,dass die Eingabe in Kleinbuchstaben ist korrekt. Dann kommt das Schreiben in ein Array. Ich denke dort wird mein Problem liegen. Mit JOptionPane war es OK, aber jetzt passte etwas nicht.
Sieht viell jemand den Fehler?
ich habe vor einiger Zeit ein kleines anfängliches Programm zum Gang durch ein Labyrinth schreiben müssen.
Damals habe ich dazu immer J'OptionPane verwendet. Jetzt muss ich jedoch mit Streams arbeiten.
Schwer ist die Umsetzung nicht, jedoch habe ich ein Problem.
Mein Programm:
Code:
import java.io.*;
public class InputParserWithoutJOptionPane {
/**
* @param args
*/
public static void main(String[] args) throws IOException{
System.out.println( "Willkomen im Labyrinth, bitte geben Sie eine Richtung im Labyrinth an.\n" +
"Es ist besteht die Möglichkeit nach Norden, Westen, Süden und Osten zu gehen.\n" +
"Bitte geben Sie die Richtung in englischer Sprache ein, mit voriger Eingabe 'go'.\n" +
"Als Beispiel, nach Norden zu gehen: go north\n" +
"Desweiteren können Sie die Eingabe 'look' bzw 'look around' eingeben zum Umschauen.\n" +
"Bitte geben Sie jetzt ihre auszuübende Funktion ein:" );
char c=' ';
String s = new String();
while(c != '\n'){
c = (char)System.in.read();
s += c;
}
// System.out.println(s);
String s1 = s.toLowerCase();
/**Die Eingabe wird auf Kleinbuchstaben veraendert*/
String[] sSplitted = s1.split( " " );
/**wie gewuenscht werden die Leerzeichen zwischen moeglichen Worten gesplittet*/
if(sSplitted[0].equals("look")){
System.out.println("You are looking around …!");
/**if-Zweig mit dem Vergleich ob 'look' eingegeben wurde*/
}
else if(sSplitted[0].equals("look") && sSplitted[1].equals("around")){
System.out.println("You are looking around …!");
/**if-Zweig mit dem Vergleich ob 'look around' eingegeben wurde*/
}
else if(sSplitted[0].equals("go") && sSplitted[1].equals("north")){
System.out.println("You chose the direction to north!");
/**if-Zweig mit dem Vergleich ob 'go north' eingegeben wurde*/
}
else if(sSplitted[0].equals("go") && sSplitted[1].equals("east")){
System.out.println("You chose the direction to west!");
/**if-Zweig mit dem Vergleich ob 'go east' eingegeben wurde*/
}
else if(sSplitted[0].equals("go") && sSplitted[1].equals("south")){
System.out.println("You chose the direction to south!");
/**if-Zweig mit dem Vergleich ob 'go south' eingegeben wurde*/
}
else if(sSplitted[0].equals("go") && sSplitted[1].equals("west")){
System.out.println("You chose the direction to west!");
/**if-Zweig mit dem Vergleich ob 'go west' eingegeben wurde*/
}
else if(sSplitted[0].equals("")){
System.out.println("Please do a decision!");
/**if-Zweig mit dem Vergleich ob etwas eingegeben wurde, falls dieses der Fall ist erscheint ein Hinweis darauf.*/
}
else {
System.out.println("Please do a right decision! Your input wasn't a right dircetion or 'look'/'look around'."
+"\nYour input was: \'"+s1+"\'. So please try again!");
/**letzter Zweig mit dem Vergleich, ob Gewuenschtes eingegeben wurde*/
}
}
}
-> egal was ich aufrufe, lande ich im letzten if-Zweig.
Die Umsetzung,dass die Eingabe in Kleinbuchstaben ist korrekt. Dann kommt das Schreiben in ein Array. Ich denke dort wird mein Problem liegen. Mit JOptionPane war es OK, aber jetzt passte etwas nicht.
Sieht viell jemand den Fehler?