# Von char nach int umwandeln



## flori (16. Mrz 2011)

Hallo

Also ich habe ein Problem. Ich will eine Textdatei einlesen und so das Alter bestimmen. In der Datei steht Alter: Zahl. Um auf die Zahl zu kommen, wollte ich einfach die charAt() Methode anwenden und so einfach den 7 und 8 Buchstaben einlesen und dann zu verknüpfen. 

Also habe ich folgenden Code geschrieben:
[JAVA=42]
if (line.contains("Alter"))
{
char k = line.charAt(7);
System.out.println(k);
int i = (int) k;
System.out.println(i);
[/code]

Leider stimmt aber mein cast Operator nicht. Denn wenn mein char Wert 1 ist, kommt als int Wert 49 heraus. 
Kann mir vielleicht jemand sagen, wie ich die beiden Werte korrekt umwandeln kann oder ob es eine Methode gibt, mit der ich direkt einen Int-Wert aus einer Datei lesen kann und nicht erst umwandeln muss.

Vielen Dank im voraus.

Mit freundlichen Grüßen 
Florian


----------



## Murray (16. Mrz 2011)

Die (hier implizite) Umwandlung eines chars in einen int liefert den ASCII-Code des Zeichens. Zum Glück stehen da '0' bis '9' direkt hintereinander: '0' ist 48, '1' ist 49 usw.
Daher geht

```
int i= k - '0'
```
Ansonsten kann man auch ganze Strings mit Integer.parseInt in einen int umwandeln. Im Beispiel müsste man vorher mit String.substring den passenden Teil aus der Zeile herausschneiden.


----------



## hdi (17. Mrz 2011)

Hier wie Murray es als Alternative vorgeschlagen hat:


```
String[] parts = line.split(":");
int alter = Integer.parseInt(parts[1].trim());
```

Das ist imho auch schöner so - denn jetzt spielt es ersten keine Rolle wieviele Stellen die Zahl hat (Alter 0 bis unendlich), zweitens wird jeglicher Whitespace (wegen trim()) ignoriert, und du musst nicht genau auf charAt(x) gehen.


----------

