Question: I have a string is half-size font and i want to convert it to full size. I was tried to use this code

```
final String x = "01589846";
    String b = "";
    System.out.print("01589846");
    int y = 0;
    final char[] list = x.toCharArray();
    for (int i = 0; i < list.length; i++) {
        y = Integer.parseInt(String.valueOf(list[i]));
        final char unicode = (char) (y + 65296);
        b += unicode;

    }
    System.out.println(b);
}

```

it actually working but it only working with number.
Anyone have another way for this ? please help me !!!!!

Answer: 
Java Strings **are** Unicode. They don't need converting. Java does not natively use ASCII.

You apparently wish to map one set of Unicode characters to another. The appropriate tool for that would be a Map, but you'll have to populate the Map with your desired conversion taken from the [Unicode code charts](https://www.unicode.org/charts/PDF/UFF00.pdf).

There may be some algorithmic way to do this for particular subranges; you seem to have discovered a way that works for (western) digits. Note that the fullwidth digits occupy codepoints 0xFF10 to 0xFF19, so the conversion formula is `digit - '0' + 0xff10`. 0xFF10 is 65296 decimal, but the hex is clearer, since it's what is used in published code charts.

Actually, it looks to me that the same thing works for all characters in the range SPACE to '~', presumably by design. Thus

```
for (int i=0; i<list.length; i++)
   list[i] += 0xff00 - ' ';

```

Here, I simply assume without checking that `list` will only contain characters in the range of SPACE to '~', i.e., the Unicode range that corresponds to graphic (printable) ASCII characters. Dealing with other characters, for example Katakana, is more involved.
```java
final String x = "012345 abcdef ABCDEF";
System.out.println(x);

String b = "";
final char[] list = x.toCharArray();
for (int i = 0; i < list.length; i++) {
    if(Character.isDigit(list[i])) {
        b += (char)(list[i] - 48 + 0xFF10);
    } else if(Character.isUpperCase(list[i])) {
        b += (char)(list[i] - 65 + 0xFF21);
    } else if(Character.isLowerCase(list[i])) {
        b += (char)(list[i] - 97 + 0xFF41);
    } else if(Character.isWhitespace(list[i])) {
        b += list[i];
    } else {
        b += (char)(list[i] - 33 + 0xFF01);
    }
}
System.out.println(b);  

```

Output:

```
012345 abcdef ABCDEF
０１２３４５ ａｂｃｄｅｆ ＡＢＣＤＥＦ

```