[Java] Chars einzeln einlesen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von osiris, 21. März 2013 .

  1. 21. März 2013
    Chars einzeln einlesen

    Moin moin,

    ich hätte gerne gerade ein einfaches Einlesen von Chars.

    Und zwar einfach des Users Input, bis zum Enter, jedes einzelne Zeichen in einen einzelnen Platz in einem Char Array schreiben.

    Geht mit C super einfach, ohne Umwege.

    In Java scheints, als ob die einfachsten Dinge nicht zu bewältigen sind?!

    hab mich vorhin hingesetzt und sicher 2 Stunden gesucht, und immer nur die Umwege über: String einlesen -> Char Array casten, gefunden.

    Wird doch irgendwie möglich sein, in einer while Schleife, sowas zu ermöglichen, oder etwa nicht!?


    Praktisches Beispiel:
    Gib einen Namen ein:
    Josef
    Intern:
    charArray[0] = J
    charArray[1] = o
    charArray[2] = s
    charArray[3] = e
    charArray[4] = f
     
  2. 21. März 2013
    Zuletzt bearbeitet: 21. März 2013
    AW: Chars einzeln einlesen

    Code:
    char in[] = new char[255];
    
    for (int i = 0; i < 255; ++i) {
     int c;
    
     if ((c = System.in.read()) == -1
     || c == '\n' || c == '\r')
     break;
    
     in[i] = (char) c;
    }
    
    // in ist nun ein char-array
    
    
    
    try/catch hab ich mal weg gelassen.
    Der Umweg über String#toCharArray() ist aber einfacher
     
  3. 21. März 2013
    AW: Chars einzeln einlesen

    Jo, weiß ich.

    Du castest hier aber auch den in von int zu char, oder?

    Also gibt's in Java nichts einfacheres? Nix für Chars?!
     
  4. 21. März 2013
    AW: Chars einzeln einlesen

    Ein char in Java hat 16bit (wegen UTF-16), in C hat ein char 8bit (idr.) entspricht daher einem byte.
    Wenn du das selbe Verhalten haben willst wie in C musst du mit bytes arbeiten und nicht mit chars.
     
  5. 21. März 2013
    Zuletzt bearbeitet: 21. März 2013
    AW: Chars einzeln einlesen

    Code:
     
     public static void main(String[] args) throws Exception{
     char[] chars = new char[5];
     
     BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
     
     for (char dummy: chars) {
     bufferedReader.read(chars);
     }
     }
    
    int java.io.Reader.read(char[] cbuf) throws IOException
    Reads characters into an array. This method will block until some input is available, an I/O error occurs, or the end of the stream is reached.

    //Edit:

    Habe deinen Post gerade nochmal gelesen. Was ist an String#toCharArray() auszusetzen?

    Code:
     BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
     char[] chars = bufferedReader.readLine().toCharArray();
     bufferedReader.close();
    Wenn du noch irgendetwas an den Chars nach dem einlesen manipulieren möchtest kannst du das dann über eine Schleife machen.
     
  6. 22. März 2013
    AW: Chars einzeln einlesen

    Ich sag ja, es ist an dem ganzen String einlesen, in ein Char Array schmeißen, String einlesen, char für char in ein Array schreiben, etc.. nichts auszusetzen.. Es kommt mir nur schlichtweg ein wenig Überdimensioniert vor, wenn ich genau weiß, die Eingabe wird maximal 3 Zeichen haben, welche ich als Chars weiterverarbeiten werde, dies dann erst über einen String zu machen.

    Mit ner Schrotflinte auf Spatzen schießen, so ähnlich ^.^
     
  7. 22. März 2013
    AW: Chars einzeln einlesen

    Ist halt mit den verschiedenen Sprachen so. Dafür braucht in C für manche Dinge teilweise wesentlich mehr Code bzw. Zeit die in Java durch wenige Zeilen abzuhandeln sind.

    Mit zunehmender Komplexität deiner Programme wirst du dich mehr und mehr über dieses Konzept von Java freuen.
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.