String einlesen
Results 1 to 23 of 23

Thread: String einlesen

  1. #1

    Title
    Master
    Join Date
    Feb 2002
    Posts
    145
    Thanks
    0
    Thanked 0 Times in 0 Posts

    String einlesen

    Hallo Leute!

    Wollte mal fragen, wie ihr das mit dem String-Einlesen löst? Bei EPROG hatten wir ja noch die komfortable "EprogIO"...

  2. #2
    lj_scampo's Avatar
    Title
    Baccalaureus
    Join Date
    Mar 2002
    Posts
    582
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Wir machen's mit System.in.read();

  3. #3
    AntiBit's Avatar
    Title
    Baccalaureus
    Join Date
    Feb 2002
    Location
    Wien
    Posts
    738
    Thanks
    0
    Thanked 6 Times in 3 Posts
    Höhö dasselbe Problem hatten wir heute auch...

    Durch diese dumme EprogIO konnten wir nicht einmal das einfachste vom einfachen, nämlich nen String einlesen...

    Wir habens auch mit System.in.read() versucht, aber das liefert ja einen Byte[] zurück...

    Jetzt haben wirs einfach mit Swing gemacht, weils uns zu dumm war. Würd mich aber auch brennend interessieren, wie man das denn jetzt einfach über Kommandozeile einlesen kann!

    Ciao,
    AntiBit
    Hätten uns Spiele wie Pac-Man in unserer Jugend beeinflusst, würden wir heute durch dunkle Räume irren, elektronische Musik hören und Pillen fressen.

  4. #4
    burny's Avatar
    Title
    Hero
    Join Date
    May 2002
    Location
    LA
    Posts
    209
    Thanks
    0
    Thanked 1 Time in 1 Post
    Wir haben das über den gepufferten input gelöst:
    BufferedReader myinput = new BufferedReader (new InputStreamReader(System.in));
    titel = myinput.readLine();

    aber fragt mich nicht wie das genau funktioniert - es funktioniert...

    warum habts ned die eprog-io verwendet? es is doch egal welche io man verwendet - kommt doch auf die objekte an.
    keep da fire burnin'

  5. #5
    Wings-of-Glory's Avatar
    Title
    CO-Administrator
    Join Date
    Jan 2002
    Posts
    4,001
    Thanks
    347
    Thanked 504 Times in 266 Posts
    PHP Code:
    public class neich
    {
      public static 
    void main(String[] args)
      {
        
    byte [] a=new byte[255];
        try
        {
          
    System.in.read(a,0,a.length);
        }
        catch (
    Exception ex)
        {
          
    System.out.println("ERROR");
        }
        
    String b =new String(a);
        
    b=b.trim();
        
    System.out.println("Sie haben eingegeben");
        
    System.out.println("<<");
        
    System.out.println(b);
        
    System.out.println(">>");
      }

    b=b.trim(); nicht vegessen, sonst passiert das
    Attached Images Attached Images  
    Otto: Apes don't read philosophy. - Wanda: Yes they do, Otto, they just don't understand
    Beleidigungen sind Argumente jener, die über keine Argumente verfügen.
    «Signanz braucht keine Worte.» | «Signanz gibts nur im Traum.»


    Das neue MTB-Projekt (PO, Wiki, Mitschriften, Ausarbeitungen, Folien, ...) ist online
    http://mtb-projekt.at

  6. #6
    AntiBit's Avatar
    Title
    Baccalaureus
    Join Date
    Feb 2002
    Location
    Wien
    Posts
    738
    Thanks
    0
    Thanked 6 Times in 3 Posts
    Oki, ist schon alles klar!

    Die Lösung von burny hab ich nach kurzer Google-Recherche auch gefunden, und die Lösung von Wings ist auch nicht zu verachten. Alles roger, thx!
    Hätten uns Spiele wie Pac-Man in unserer Jugend beeinflusst, würden wir heute durch dunkle Räume irren, elektronische Musik hören und Pillen fressen.

  7. #7
    MaxAuthority's Avatar
    Title
    Gewinner des Desktop-Contest 2002
    Join Date
    Feb 2002
    Location
    Wien
    Posts
    833
    Thanks
    0
    Thanked 6 Times in 4 Posts
    @wings-of-glory:
    welchen editor verwendest du in dem screenshot?
    http://vimperator.org - Make Firefox behave like Vim

  8. #8
    lj_scampo's Avatar
    Title
    Baccalaureus
    Join Date
    Mar 2002
    Posts
    582
    Thanks
    0
    Thanked 0 Times in 0 Posts
    sieht nach jBuilder aus..

  9. #9
    Wings-of-Glory's Avatar
    Title
    CO-Administrator
    Join Date
    Jan 2002
    Posts
    4,001
    Thanks
    347
    Thanked 504 Times in 266 Posts
    Original geschrieben von MaxAuthority
    @wings-of-glory:
    welchen editor verwendest du in dem screenshot?
    Borland JBuilder 5 Personal Edition

  10. #10

    Title
    Veteran
    Join Date
    Jun 2002
    Posts
    6
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Original geschrieben von burny
    Wir haben das über den gepufferten input gelöst:
    BufferedReader myinput = new BufferedReader (new InputStreamReader(System.in));
    titel = myinput.readLine();

    Das hat bei mir nicht funktioniert...Class BufferedReader not found....

    hat wer eine ahnung was ich tun kann?

  11. #11

    Title
    Principal
    Join Date
    Feb 2002
    Posts
    87
    Thanks
    0
    Thanked 0 Times in 0 Posts
    versuchs mal mit import java.io.*; ...

    >> clemens

  12. #12

    Title
    Principal
    Join Date
    Feb 2002
    Posts
    87
    Thanks
    0
    Thanked 0 Times in 0 Posts

    andere frage ...

    stehe vor einem problem: die typen schreiben ja in ihrer spezifikation, dass man auf das Verwenden von Unterordern verzichten soll (nehm mal an, dass shell-skript is net rekursiv ;-)), wie lös' ich dass jetzt, wenn ich ein package verwenden will? (od. gibts irgendeine alternative dazu, klassen zu importieren? -> hinw. vererben reicht in dem fall nicht!

    danke,

    >> clemens

    p.s.: und class-nesting muss auch nicht unbedingt sein ...
    Last edited by meclens; 16-10-2002 at 14:25.

  13. #13

    Title
    Veteran
    Join Date
    Jun 2002
    Posts
    6
    Thanks
    0
    Thanked 0 Times in 0 Posts
    hat sich erledigt...

  14. #14

    Title
    Principal
    Join Date
    Feb 2002
    Posts
    87
    Thanks
    0
    Thanked 0 Times in 0 Posts
    meines ebenso ...

    >> clemens

  15. #15
    dose's Avatar
    Title
    Dipl.Ing
    Join Date
    Feb 2002
    Location
    Meidllling
    Posts
    1,037
    Thanks
    1
    Thanked 0 Times in 0 Posts
    Gibt es eigentlich eine Möglichkeit in Java, ein einzelnes Zeichen einzulesen ? Und damit meine ich NUR ein einzelnes Zeichen, ohne daß ichs mit (CR)LF abschließen muß (wie bei BufferedReader.read()), und (CR)LF dann auch im Input bekomm...ich find irgendwie nix in der Doku, vielleicht bin ich auch einfach schon zu genervt...
    Das Programm selber läuft an sich schon problemlos (möglicherweise nicht allzuschön programmiert, kA wie ma das "richtig" macht), nur hats halt eben ein paar Macken bei der Eingabe...

    Nur zur Erklärung: bin ein ziemlicher Java (und OO allgemein) Newbie, hab kein Java Buch und EPROG "damals" noch mit Modula2 gemacht, also nicht schlagen bitte
    Last edited by dose; 17-10-2002 at 05:17.
    yast, SuSEconfig, apt-get and rpm - the 4 horsemen of the apocalypse

    Platform of insanity :: www.dose-xp.org

  16. #16

    Title
    Master
    Join Date
    Feb 2002
    Posts
    145
    Thanks
    0
    Thanked 0 Times in 0 Posts
    probier mal System.in.read(), das liest ein einzelnes zeichen ein, hat aber bei uns leichte probleme gemacht

  17. #17
    dose's Avatar
    Title
    Dipl.Ing
    Join Date
    Feb 2002
    Location
    Meidllling
    Posts
    1,037
    Thanks
    1
    Thanked 0 Times in 0 Posts
    Ja, nur das Problem bei System.in.read() is z.B., daß die Eingabe erst nach Drücken von Enter verarbeitet wird, und dann sowohl das eingegebene Zeichen als auch CRLF zrückkommen...und wenn ich gleich mehrere Zeichen eingeb und dann erst Enter, entsteht überhaupt das Chaos...
    yast, SuSEconfig, apt-get and rpm - the 4 horsemen of the apocalypse

    Platform of insanity :: www.dose-xp.org

  18. #18

    Title
    Elite
    Join Date
    Jan 2002
    Posts
    314
    Thanks
    0
    Thanked 0 Times in 0 Posts
    angeblich liegt das aber nicht an java an sich, sondern am betriebsystem, das darunter läuft; das java-programm bekommt die zeichen überhaupt erst zu sehen, wenn mal enter gedrückt worden ist.

    und noch angeblicher kann man mit 'stty -icanon' (unter linux),, bevor das java-programm aufgerufen wird, bewirken, dass System.in.read() jedes Zeichen sofort bekommt.
    (hab das aber noch nicht ausprobiert, muss ich gestehen)

    mfg, Chris
    hi, i'm a signature virus. copy me into your signature to help me spread.

  19. #19
    shabby's Avatar
    Title
    Elite
    Join Date
    Jan 2002
    Location
    Schrödinger, 1040 Wien
    Posts
    267
    Thanks
    2
    Thanked 9 Times in 8 Posts
    Ja, die Standardeingabe ist default zeilengepuffert.

    Mich würde allerdings auch interessieren, wie man die Tastatureingabe direkt abfragt, z.B. für Control Keys, Response auf einzelnen Tastendruck -- geht das unter der Kommandozeile (ohne auf native Methoden zurückzugreifen) ?
    Last edited by shabby; 18-10-2002 at 18:50.

  20. #20
    MaxAuthority's Avatar
    Title
    Gewinner des Desktop-Contest 2002
    Join Date
    Feb 2002
    Location
    Wien
    Posts
    833
    Thanks
    0
    Thanked 6 Times in 4 Posts
    Original geschrieben von shabby
    Ja, die Standardeingabe ist default zeilengepuffert.

    Mich würde allerdings auch interessieren, wie man die Tastatureingabe direkt abfragt, z.B. für Control Keys, Response auf einzelnen Tastendruck -- geht das unter der Kommandozeile (ohne auf native Methoden zurückzugreifen) ?
    C/C++
    http://vimperator.org - Make Firefox behave like Vim

  21. #21

    Title
    Master
    Join Date
    Feb 2002
    Posts
    141
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Code:
     
    
    &nbsp;public static int readInt() { 
    &nbsp; &nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
    
    &nbsp;&nbsp;try { 
    &nbsp;&nbsp;&nbsp;String input = br.readLine(); 
    &nbsp;&nbsp;&nbsp;Integer value = new Integer(Integer.parseInt(input)); 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;return value.intValue(); 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;} catch (IOException ioe) { 
    &nbsp;&nbsp;&nbsp;return -1; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;} 
    &nbsp;} 
    &nbsp;&nbsp; 
    &nbsp;public static String readString() { 
    &nbsp; &nbsp; 
    &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
    
    &nbsp;&nbsp;try { 
    &nbsp;&nbsp;&nbsp;String input = br.readLine(); 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;return input; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;} catch (IOException ioe) { 
    &nbsp;&nbsp;&nbsp;return "-1"; 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;} 
    &nbsp;}
    2 ganz praktische methoden.... wenn ihr irgendwelche Fehler findet, her damit!

  22. #22
    lj_scampo's Avatar
    Title
    Baccalaureus
    Join Date
    Mar 2002
    Posts
    582
    Thanks
    0
    Thanked 0 Times in 0 Posts
    @MrBurnst:
    Ich f&auml;nde f&uuml;r readInt() folgende Methode besser, da -1 ja auch eine Integerzahl ist (und deshalb nicht so gut geeignet f&uuml;r einen Fehlerwert):

    Code:
    public static int readInt() throws NumberFormatException 
    { 
        return (Integer.parseInt(readString()));
    }
    Die Exception wird dann einfach auf die aufrufende Methode weitergereicht und muss dort abgefangen (oder wiederum weitergereicht) werden.



    [Edit:]
    Vergass die IOException von readString(). Ich w&uuml;rde es insgesamt so machen:

    Code:
    public static String readString() throws IOException
    { 
          BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
          return br.readLine(); 
    } 
    
    
    public static int readInt() throws NumberFormatException, IOException
    {
        return (Integer.parseInt(readString()));
    }
    Weil man ja auch "-1" als String eingeben kann...

    [/Edit]





    mfg, lj_scampo
    Last edited by lj_scampo; 30-10-2002 at 16:20.

  23. #23

    Title
    Master
    Join Date
    Feb 2002
    Posts
    141
    Thanks
    0
    Thanked 0 Times in 0 Posts
    thanx, mit exceptions war ich noch nie gut...

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •