JAVA Zwei Strings vergleichen < Softwaretechnik+Pro < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 19:57 So 03.07.2011 | Autor: | Parkan |
Hallo
Ich möchte eine Eingabe als Bytearray zwischenspeichern, dann dise Eingabe rückwärts ausgeben.
Das klapt alles wunderbar.
Problem: Wenn exit eingetippt wird. Dann muss das programm schließen.
Ich prüfe das mit einer If Anweisung und equals. Doch die liefert leider false obwohl die Strings identsich sind. Wie muss man vorgehen? Bzw kann da sjeamnd korrigieren.
Aufgabe | byte[] bytearray = new byte[1000];
while(true){
try {
System.out.println("Geben sie eine Zeile ein");
System.in.read(bytearray);
line = new String(bytearray);
StringBuilder stringBuilder = new StringBuilder(line);
output = stringBuilder.reverse();
String s_output = output.toString();
if (s_output.equals("tixe")) {
break;
}else{
System.out.println(s_output);
}
} catch (IOException ex) {
}
} |
MfG
Janina
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 20:39 So 03.07.2011 | Autor: | felixf |
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Moin Janina!
> Ich möchte eine Eingabe als Bytearray zwischenspeichern,
> dann dise Eingabe rückwärts ausgeben.
>
> Das klapt alles wunderbar.
> Problem: Wenn exit eingetippt wird. Dann muss das programm
> schließen.
>
> Ich prüfe das mit einer If Anweisung und equals. Doch die
> liefert leider false obwohl die Strings identsich sind.
> Wie muss man vorgehen? Bzw kann da sjeamnd korrigieren.
>
>
> byte[] bytearray = new byte[1000];
>
> while(true){
> try {
> System.out.println("Geben sie eine Zeile ein");
> System.in.read(bytearray);
Du musst beachten, dass die Eingabe nicht nur den Text "exit" liefert, sondern "exit\n", wobei \n fuer ein newline-Zeichen steht.
> line = new String(bytearray);
> StringBuilder stringBuilder = new StringBuilder(line);
> output = stringBuilder.reverse();
> String s_output = output.toString();
Deine Inversionsroutine gibt uebrigens zuerst das Newline aus und dann die eigentliche Eingabe rueckwaerts. Das ist moeglicherweise nicht das, was zu haben willst.
LG Felix
|
|
|
|