下面是一個代碼片段,int a = 1;char b = (char) a;System.out.println(b);但是我得到的是空輸出。int a = '1';char b = (char) a;System.out.println(b);我將得到1作為輸出。有人可以解釋一下嗎?如果我想像第一個代碼片段一樣將int轉換為char,該怎么辦?
3 回答

MYYA
TA貢獻1868條經驗 獲得超4個贊
int a = 1;
char b = (char) a;
System.out.println(b);
會打印出ascii值為1的char(首字符,這是不可打印的)。
int a = '1';
char b = (char) a;
System.out.println(b);
將打印出具有ascii值49的字符(一個對應于'1'的字符)
如果要轉換數字(0-9),則可以將數字加48并進行轉換,例如Character.forDigit(a, 10);。
如果要轉換intas ascii值,則可以使用Character.toChars(48)例如。

慕姐4208626
TA貢獻1852條經驗 獲得超7個贊
似乎您正在尋找Character.forDigit方法:
final int RADIX = 10;
int i = 4;
char ch = Character.forDigit(i, RADIX);
System.out.println(ch); // Prints '4'
還有一種方法可以將字符從char轉換回int:
int i2 = Character.digit(ch, RADIX);
System.out.println(i2); // Prints '4'
請注意,通過更改,RADIX您還可以支持十六進制(基數為16)以及最大為36(或Character.MAX_RADIX稱為36)的任何基數。
添加回答
舉報
0/150
提交
取消