以下是代码段,
int a = 1;
char b = (char) a;
System.out.println(b);
Run Code Online (Sandbox Code Playgroud)
但我得到的是空输出.
int a = '1';
char b = (char) a;
System.out.println(b);
Run Code Online (Sandbox Code Playgroud)
我将得到1作为我的输出.
有人可以解释一下吗?如果我想在第一个片段中将int转换为char,我该怎么办?
jh3*_*314 94
int a = 1;
char b = (char) a;
System.out.println(b);
Run Code Online (Sandbox Code Playgroud)
将打印出ascii值为1的字符(标题字符开头,不可打印).
int a = '1';
char b = (char) a;
System.out.println(b);
Run Code Online (Sandbox Code Playgroud)
将打印出ascii值为49的char(一个对应于'1')
如果你想转换一个数字(0-9),你可以添加48和转换,或类似的东西Character.forDigit(a, 10);.
如果要转换int为ascii值,可以使用Character.toChars(48)例如.
Hag*_*gra 50
我的答案类似于jh314的答案,但我会更深入地解释一下.
在这种情况下你应该做的是:
int a = 1;
char b = (char)(a + '0');
System.out.println(b);
Run Code Online (Sandbox Code Playgroud)
在这里,我们使用'0',因为字符实际上由ASCII值表示.'0'是一个char,由值48表示.
我们输入(a + '0')并为了添加它们,Java将'0'转换为其ASCII值为48,a为1,因此总和为49.那么我们所做的是:
(char)(49)
Run Code Online (Sandbox Code Playgroud)
我们铸造int了char.相当于49的ASCII是'1'.您可以通过这种方式将任何数字转换为char,并且比使用.toString()方法更智能,更好,然后通过.charAt()方法减去数字.
Sim*_*erg 37
看起来你正在寻找Character.forDigit方法:
final int RADIX = 10;
int i = 4;
char ch = Character.forDigit(i, RADIX);
System.out.println(ch); // Prints '4'
Run Code Online (Sandbox Code Playgroud)
还有一种方法可以从char转换回int:
int i2 = Character.digit(ch, RADIX);
System.out.println(i2); // Prints '4'
Run Code Online (Sandbox Code Playgroud)
请注意,通过更改,RADIX您还可以支持十六进制(基数16)和任何最大为36的基数(或者Character.MAX_RADIX也称为).
小智 9
int a = 1;
char b = (char) a;
System.out.println(b);
Run Code Online (Sandbox Code Playgroud)
好吧,我经历了同样的问题,但我做的是以下代码.
int a = 1
char b = Integer.toString(a).charAt(0);
System.out.println(b);
Run Code Online (Sandbox Code Playgroud)
使用此方法,您将获得十进制值作为char类型.我使用索引为0的charAt(),因为该字符串中唯一的值是'a',如您所知,该字符串中'a'的位置从0开始.
对不起,如果我的英语没有得到很好的解释,希望对你有帮助.
小智 5
您可能希望将其打印为“1”或“a”。
如果您想要“1”作为输入,则:
int a = 1;
char b = (char)(a + '0');
System.out.println(b);
Run Code Online (Sandbox Code Playgroud)
如果您想要“a”作为输入,则:
int a = 1;
char b = (char)(a-1 + 'a');
System.out.println(b);
Run Code Online (Sandbox Code Playgroud)
java 将 ascii 值转换为 char :)
| 归档时间: |
|
| 查看次数: |
546623 次 |
| 最近记录: |