# Aus int das unicode char zeichen lesen



## Guest (19. Aug 2007)

hallo

wie bekomme ich von einem gegebenen int Wert das entsprechende Zeichen vom Typ char?


----------



## merlin2 (19. Aug 2007)

```
int i = 65
char c = (char)i;
```


----------



## javabar (7. Jan 2013)

merlin2 hat gesagt.:


> ```
> int i = 65
> char c = (char)i;
> ```



Die obige Lösung ist nicht ganz korrekt, da nicht alle Unicode-Zeichen unterstützt werden, und davon gibt es mittlerweile über 110000. Characters ab U+10000 liefern hier ein falsches Ergebnis.

Die saubere Lösung ist,

```
Character.toChars(i);
```
 zu verwenden.

Aber Achtung: Die Methode liefert char[] zurück!

Aber da eh meist ein String benötigt wird, lässt sich

```
String s = new String(Character.toChars(i));
```
 verwenden, ein Einsatz in einem StringBuilder ist auch kein Problem, es gibt auch eine append()-Methode für char[].

Danke an SlaterB für das Öffnen des mittlerweile geschlossen gewesenen Threads und an ATorras von Stackoverflow für das Posten der Lösung dort:

types - Converting int to char in java - Stack Overflow .

Viele Grüße

JavaBar


----------



## strußi (12. Apr 2014)

In meinem Projekt habe ich ein paar mal ein unicodezeichen gebraucht, das hab einfach mittels String s = "\u_ _ _ _"; dargestellt.
vlt kannst du dir deinen string so bauen, dass er die zahl aussliest, deren länge bestimmt und die fehlenden führenden 0en auffüllt.

dein Beispiel 

```
String unicode;
int i =65;
int stellen =i.lenght; // entspricht 2
int nullen =4-stellen;
switch( nullen){
case 0:
      unicode ="\u" +i;
      break;
case 1:
      unicode ="\u0" +i;
      break;

case 2:
      unicode ="\u00" +i;
      break;

case 3:
      unicode ="\u000" +i;
      break;
}
```


Grüße
Chris


----------

