#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 + Multi-Zitat Zitieren
#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 + Multi-Zitat Zitieren
#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?! + Multi-Zitat Zitieren
#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. + Multi-Zitat Zitieren
#6 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. + Multi-Zitat Zitieren
#7 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 ^.^ + Multi-Zitat Zitieren
#8 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. + Multi-Zitat Zitieren