[Java] Schleife funzt net

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

Schlagworte:
  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. #2 12. November 2009
    AW: Schleife funzt net

    gib uns mal noch die Klasse Eingabe
     
  3. #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/
     
  4. #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?
     
  5. #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!
     
  6. #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
     
  7. #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.
     
  8. #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
     
  9. #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
     

  10. Videos zum Thema
    Video Script
Die Seite wird geladen...

Ähnliche Themen mit den Stichworten: Java Schleife funzt

  1. for schleife mit Array in Javascript
    BladeFire, 12. Februar 2015 , im Forum: Webentwicklung
    Antworten:
    3
    Aufrufe:
    1.842
  2. [Java] return in if-Schleife
    sft-FTW, 7. April 2012 , im Forum: Programmierung & Entwicklung
    Antworten:
    2
    Aufrufe:
    1.078
  3. Antworten:
    4
    Aufrufe:
    985
  4. [Java] Schleifen/Sortierproblem
    osiris, 22. November 2010 , im Forum: Programmierung & Entwicklung
    Antworten:
    2
    Aufrufe:
    722
  5. [Java] Array & Schleife
    osiris, 15. November 2010 , im Forum: Programmierung & Entwicklung
    Antworten:
    5
    Aufrufe:
    937