[Java] Konsole - Usereingabe verarbeiten

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Prrovoss, 10. Mai 2012 .

  1. 10. Mai 2012
    Konsole - Usereingabe verarbeiten

    hi,
    wie kriege ich es hin dass sich die konsole nicht schließt wenn man das programm ausführt und das programm dann auf eine eingabe wartet?
    wenn der user was eingegeben hat und enter gedrückt hat, will ich auf die eingabe zugreifen können und dann code ausführen lassen. natürlich soll sich das programm dann nicht schließen sondern auf die nächste eingabe warten.
     
  2. 10. Mai 2012
    AW: Konsole - Usereingabe verarbeiten

    http://docs.oracle.com/javase/1.4.2/docs/api/java/io/InputStreamReader.html



    Anwendung:

    Einfache Java-Beispiele
     
    1 Person gefällt das.
  3. 10. Mai 2012
    AW: Konsole - Usereingabe verarbeiten

    das sollte es sein
    noch jemand ne anmerkung oder so dazu?^^
     
  4. 12. Mai 2012
    Zuletzt bearbeitet: 12. Mai 2012
    AW: Konsole - Usereingabe verarbeiten

    hab das jetzt mal ausprobiert und funktioniert soweit auch ganz gut. allerdings wird das programm beendet nachdem ich den string verarbeitet hab. sieht bei mir so aus:

    PHP:
             try {

                
    BufferedReader in  = new  BufferedReader (new  InputStreamReader (
                        
    System . in ));
                
    String s  in . readLine ();

                switch (
    s ) {

                case 
    "list" :
                    
    l . String ();
                case 
    "exit" :
                    return;

                }

            }

            catch (
    IOException ex ) {
                
    System . out . println ( ex . getMessage ());
                
            }
    edit
    so:^^
    Code:
     case "list":
     l.String();
     break;
     case "exit":
     return;
     
  5. 12. Mai 2012
    Zuletzt bearbeitet: 12. Mai 2012
    AW: Konsole - Usereingabe verarbeiten

    Code:
     
    do{
     String s = in.readLine();
     
     .... [dein code]
     
    }while(!s.equals("exit"));
    
    So oder so ähnlich kannst du das lösen. Musst halt deine Befehle in ner Schleife einlesen...
     
  6. 12. Mai 2012
    Zuletzt bearbeitet: 12. Mai 2012
    AW: Konsole - Usereingabe verarbeiten

    ja so isses noch eleganter. hatte zwar ne while-schleife aber nich so schön eingebaut^^

    edit
    geht nich er kann auf s nich zugreifen. s existiert ja auch nur in der schleife oder?
     
  7. 12. Mai 2012
    AW: Konsole - Usereingabe verarbeiten

    Dann deklariere s einfach außerhalb.
    Code:
    String s;
    do{
    s=....
    }while(...);
     
    1 Person gefällt das.
  8. 12. Mai 2012
    AW: Konsole - Usereingabe verarbeiten

    haha natürlich nich dran gedacht sry^^
     
  9. 12. Mai 2012
    Zuletzt bearbeitet: 12. Mai 2012
    AW: Konsole - Usereingabe verarbeiten

    Man sollte trotz der neuen Funktion der 1.7 nicht unbedingt Strings in Switch-Case benutzen, ... aber ist hier wohl egal.


    PHP:
    package main ;

    import java . io . BufferedReader ;
    import java . io . IOException ;
    import java . io . InputStreamReader ;

    public class 
    Main  {

        
    //
        
    public static  void main ( String []  args ) {

            
    String eingabe  "" ;
            
    BufferedReader br  = new  BufferedReader (new  InputStreamReader ( System . in ));

            while (
    true ) {
                
    // Switch-case hat nichts mit dem Try-Catch zutun,
                
    try {
                    
    eingabe  br . readLine ();
                } catch (
    IOException e ) {
                    
    e . printStackTrace ();
                }

                
    // Sollte der String null sein, dann wirft switch nochmal eine NPE. Lieber immer auf sicher gehen
                
    if ( eingabe  ==  null  ||  eingabe . isEmpty ()) {
                    
    System . out
                            
    . println ( "Fehler bei der Eingabe. Programm beendet sich" );
                    break; 
    // Oder return, System.exit(0);
                
    }

                
    // Oder willst du echt unterscheiden, ob man Exit oder exit eingibt?
                
    switch ( eingabe . toLowerCase ()) {
                case 
    "list" :
                    
    System . out . println ( "l.String();" );
                case 
    "exit" :
                    return; 
    // Da break nur die Switch beenden würde oder System.exit(0);                
                
    default:
                    
    System . out
                            
    . println ( "Was du da auch eingibst, ich hab kA, was du willst" );
                }

            }

        }

    }
     
  10. 13. Mai 2012
    AW: Konsole - Usereingabe verarbeiten

    @DasBoeseLebt

    kannst du das näher erläutern?
    warum sollte man keine strings in nem switch-statement verwenden?

    ich denke im bytecode unterscheidet sich das nicht groß von einer if-else verzweigung mit nem .equals aufruf.
     
    1 Person gefällt das.
  11. 13. Mai 2012
    Zuletzt bearbeitet: 13. Mai 2012
    AW: Konsole - Usereingabe verarbeiten

    Liegt nur daran, dass 1.7 gerade erst an den Endanwender verteilt wird und sollte er sein Code in 1.7 kompilieren, dann wird er auf 1.6 (derzeit die aktuell und am meisten verbreitet) nicht funktionieren. Stellt er dann sein Kompilierlevel auf 1.6, dann wird ihm der Code als fehlerhaft angezeigt.

    Um sich den ganzen Müll zu sparen und jederzeit zwischen 1.6 und 1.7 wechseln zu können, sollte man es wie früher mit Enums machen.


    A Switch on String Idiom for Java


    Was hier aber bei Hobbyprogrammierung nicht nötig sein sollte, aber man sollte sowas im Hinterkopf haben, solange 1.7 die 1.6 nicht richtig abgelöst hat.
     
    1 Person gefällt das.
  12. 13. Mai 2012
    AW: Konsole - Usereingabe verarbeiten

    ich hab das natürlich immer im hinterkopf solange es sich aber nur um eine uni-hausaufgabe handelt, mach cih mri da keinen kopf drum

    sollte das tool für eine breitere masse sein, würde ich natürlich keine funktionen aus der 1.7er version nehmen.
     
  13. 16. Mai 2012
    AW: Konsole - Usereingabe verarbeiten

    Wieso nehmt ihr nicht einfach einen Scanner? ist doch viel einfacher.

    btw:


    {bild-down: http://entwickler.com/develop/zonen/magazine/news/pspic/picture_file/4/java_distr4fb21c002e97c.png?1337072640}
     
  14. 16. Mai 2012
    AW: Konsole - Usereingabe verarbeiten

    stimmt, hast recht. völlig verpeilt^^

    mit nem scanner kannste die usereingabe auch direkt einerm variablentyp, z.B. int, zuordnen.
     
  15. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.