Below is a code snippet,
int a = 1;
char b = (char) a;
System.out.println(b);
But what I get is empty output.
int a = '1';
char b = (char) a;
System.out.println(b);
I will get 1 as my output.
Can somebody explain this? And if I want to convert an int to a char as in the first snippet, what should I do?
解决方案
int a = 1;
char b = (char) a;
System.out.println(b);
will print out the char with ascii value 1 (start-of-heading char, which isn't printable).
int a = '1';
char b = (char) a;
System.out.println(b);
will print out the char with ascii value 49 (one corresponding to '1')
If you want to convert a digit (0-9), you can add 48 to it and cast, or something like Character.forDigit(a, 10);.
If you want to convert an int as in ascii value, you can use Character.toChars(48) for example.