Java Typecasting --> String zu char

SanBo

Lt. Commander
Registriert
Apr. 2008
Beiträge
1.415
Hallo, würde gerne in einer Eingaberoutine das Geschlecht abfragen und dementsprechend in den folgenden Dialogen die Person als "Frau" oder "Herr" ansprechen.

Da ich die Eingabe als String auslese, muß ich nun das Geschlecht von einem String in einen char umwandeln.

Die Umwandlung in einen Int wäre ja wie folgt:

System.out.println("Bitte geben Sie ihr Alter ein: ");
String alter = bReader.readLine();

int iAlter = Integer.parseInt(alter);


Wie wäre das nun bei einer Umwandlung in einen char?

System.out.println("Bitte geben Sie ihr Geschlecht an (m/w): ");
String geschlecht = bReader.readLine();

int cGeschlecht = Char.parsechar(geschlecht);



Allerdings funktioniert das Ganze so leider nicht.

Deshalb nun meine beiden Fragen:
Ist es überhaupt möglich eine Stringvariable in einen char umzuwandeln?
Und wenn ja, wie?
 
Zuletzt bearbeitet:
Du kannst Strings nur in Char-Arrays umwandeln (String.toCharArray() iirc), da der User theoretisch auch mehr als einen Buchstaben angeben kann. ;) D.h. du müsstest an die Int-Variablen das erste Arrayfeld übergeben.
 
Es ist aber generell nicht möglich, statt eines Strings einen char einzulesen?
Also ähnlich wie das hier:


char geschlecht = bReader.readLine();
 
Klar kannst auch nen einzelnen char einlesen anstatt ne ganze Zeile: http://java.sun.com/j2se/1.4.2/docs/api/java/io/BufferedReader.html#read() (ich geh mal vom BufferedReader aus weil du ja bReader schreibst) Bei der read-Methode musst halt noch in einen char casten (aber nur wenn sie nicht -1 ist; das zeigt nämlich den End of Stream an). Ansonsten gibts auch die read-Methode mit dem char-Array (kann man auch mit Größe 1 verwenden um einen char zu lesen)...
 
Zuletzt bearbeitet:
Verstehe ich nicht so ganz, sorry.

Könntest du mir dazu bitte mal einen entsprechenden Qualltext posten?
 
Sollte doch aus der Java-Doku ersichtlich sein oder kannst du kein Englisch? Ungefähr so müsste es aussehen.
PHP:
int result = br.read();
if(result != -1){
  char charRead = (char) result;
  System.out.println(charRead);
} else System.out.println("Stream ist aus! Kann nicht weiterlesen!");
oder wenn man gleich mehrere will
PHP:
int wantedChars = 5;
char[] result = new char[wantedChars];
int charsRead = br.read(result, 0, wantedChars);
if(charsRead > 0){
  char[] realResult;
  if(charsRead != wantedChars){    // kann vorkommen wenn das Ende des Streams erreicht wurde und z.b. statt 5 Zeichen nur 4 gelesen wurden
    char[] realResult = new char[charsRead];
    System.arraycopy(result, 0, realResult , 0, charsRead); 
  } else realResult = result;
  System.out.println(realResult);
} else System.out.println("Stream ist aus! Kann nicht weiterlesen!");
 
Kann wirklich kaum English ;).

Hab vielen Dank!
 
Zurück
Oben