[Java] Schleife funzt net

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Pobe, 12. November 2009 .

Schlagworte:
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #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 != "") ;
    }
    }
     

  2. Anzeige
    Heute: Deals & Sale mit stark reduzierten Angeboten finden.
  3. #2 12. November 2009
    AW: Schleife funzt net

    gib uns mal noch die Klasse Eingabe :)
     
  4. #3 12. November 2009
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
  5. #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?
     
  6. #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!
     
  7. #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
     
  8. #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.
     
  9. #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
     
  10. #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
     

  11. Videos zum Thema
Die Seite wird geladen...
Similar Threads - Java Schleife funzt
  1. Antworten:
    3
    Aufrufe:
    1.694
  2. Antworten:
    2
    Aufrufe:
    1.008
  3. Antworten:
    4
    Aufrufe:
    909
  4. Antworten:
    2
    Aufrufe:
    696
  5. Antworten:
    5
    Aufrufe:
    840