#1 12. November 2009 Schleife funzt net Hi Leute! Ich soll nen Algo coden, bei dem ich eine Zeichenreihe mit der Tastatur einlesen kann und diese Zeichenreihe anschließend wieder in der ASCII Schreibweise ausgegeben wird. Beendet soll die Schleife werden, wenn ich die leere Zeichenreihe eingebe. Funktioniert, bis auf die Schleife, wär cool, wenn da mal jemand drüber schauen kann. greetz Pobe Spoiler class Aufgabe2 { public static void main (String [] args) { String s,t ; do { System.out.println ("Geben sie eine beliebige Zeichenreihe ein:") ; s = Eingabe.readString () ; t = "" ; int laenge = s.length () ; while ( laenge > 0) { laenge-- ; t = s.codePointAt (laenge) +" " +t ; } System.out.println (t +"\n") ; } while ( s != "") ; } } + Multi-Zitat Zitieren
#2 12. November 2009 AW: Schleife funzt net gib uns mal noch die Klasse Eingabe + Multi-Zitat Zitieren
#3 12. November 2009 Zuletzt von einem Moderator bearbeitet: 14. April 2017 AW: Schleife funzt net Ist von meinem prof. Ich selbst kann se net öffnen... https://www.xup.in/dl,20972489/Eingabe.class/ + Multi-Zitat Zitieren
#4 12. November 2009 AW: Schleife funzt net was genau funktioniert net? Habs ohne einlesen gemacht, die do while schleife auskommentiert und nen festen String genommen. Aber sollte ja eigentlich keinen unterschied machen? also wo is das problem? + Multi-Zitat Zitieren
#5 12. November 2009 AW: Schleife funzt net ich kann ständig zeichenreihen eingeben, aber wenn ich die leere Zeichenreihe eingebe, sprich nur Enter drücke, bricht die Schleife nicht ab! + Multi-Zitat Zitieren
#6 13. November 2009 AW: Schleife funzt net Dann schmeiß doch mal den Debugger an, und schau nach was die Eingabe-Klasse einließt - bzw. zurückgibt, wenn du eine (für dich) leere Zeichenkette eingibst und ENTER drückst. Ich tippe auf mindestens ein Zeichen (ENTER). - - - Tanya + Multi-Zitat Zitieren
#7 13. November 2009 AW: Schleife funzt net ich würde mir da ne eigene methode schreiben um zu testen ob "s" leer ist. Code: class Aufgabe2 { public static void main (String [] args) { String s,t ; do { System.out.println ("Geben sie eine beliebige Zeichenreihe ein:") ; s = Eingabe.readString () ; //prüfen ob die eingabe leer ist, wenn ja: ende if(Aufgabe2.empty(s)) break; t = "" ; int laenge = s.length () ; while ( laenge > 0) { laenge-- ; t = s.codePointAt (laenge) +" " +t ; } System.out.println (t +"\n") ; } while(true); // endlosschleife: läuft solange bis sie durch "break" beendet wird } /** * prüft ob ein string leer ist bzw. nur zeichen enthält die nicht sichtbar wären * * @param String str der zu prüfende string * @return Boolean true => leer, false => nicht leer */ protected static boolean empty(String str) { int len = str.length(); for_loop: for(int i = 0; i < len; ++i) { switch(s.charAt(i)) { case '\n': case '\t': case '\r': case ' ': continue for_loop; } return false; //mindestens ein zeichen = nicht leer } return true; } } habs ned durch nen compiler gejagt, kann dir also ned sagen ob 100% funktioniert, aber du siehst ja meinen gedankengang. + Multi-Zitat Zitieren
#8 13. November 2009 AW: Schleife funzt net ACHSO na sag das doch gleich, is doch klar warum er da nicht abbricht!!!! du kannst Strings nicht miteinander vergleichen. Okay du kannst schon, aber es liefert dir nicht das gewünschte ergebnis Wenn du wirklich abbrechen willst, wenn kein Text drinn steht solltest du eventuell so abfragen: } while ( s.length()>0) oder } while (!s.equals("")) oder s.equalsIgnoreCase je nachdem was man überprüft hoffe das hilft edit: Galileo Computing :: Java ist auch eine Insel - index hier kann man lesen warums net geht...zumindest grob angeschnitten + Multi-Zitat Zitieren
#9 17. November 2009 AW: Schleife funzt net danke für die Vorschläge... bws sind raus. es hat aber genügt in die while schleife t statt s zu schreiben. weil der sting t nicht verändert wird, wenn die Stringlänge von s 0 ist. greetz + Multi-Zitat Zitieren