在java中将int转换为char
下面是一段代码片段在java中将int转换为char,java,char,int,Java,Char,Int,下面是一段代码片段 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,我应该怎么做 int a = 1; char b = (char) a; System.out.println(b); 将用1打印字符(标题字符
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,我应该怎么做
int a = 1;
char b = (char) a;
System.out.println(b);
将用1打印字符(标题字符的开头,不可打印;请参见下表:,与ASCII相同)
将使用Unicode代码点49打印字符(一个对应于“1”)
如果你想转换一个数字(0-9),你可以加上48并转换,或者类似于Character.forDigit(a,10)代码>
如果要将int
转换为Unicode码点,可以使用例如
将用1打印字符(标题字符的开头,不可打印;请参见下表:,与ASCII相同)
将使用Unicode代码点49打印字符(一个对应于“1”)
如果你想转换一个数字(0-9),你可以加上48并转换,或者类似于Character.forDigit(a,10)代码>
如果要将int
转换为Unicode码点,可以使用例如。在java中,字符是int。第一个代码段打印出默认字符编码方案(可能是Unicode)中与值1对应的字符。Unicode字符U+0001是非打印字符,因此您看不到任何输出
如果要打印出字符“1”,可以在正在使用的编码方案中查找“1”的值。在Unicode中,这是49(与ASCII相同)。但这只适用于数字0-9
您最好使用字符串而不是字符,并使用Java内置的toString()
方法:
int a = 1;
String b = toString(a);
System.out.println(b);
final int RADIX = 10;
int i = 4;
char ch = Character.forDigit(i, RADIX);
System.out.println(ch); // Prints '4'
无论您的系统编码是什么,这都会起作用,并且适用于多位数。在java中,字符是一个int。您的第一个代码段将打印出与默认字符编码方案(可能是Unicode)中的值1对应的字符。Unicode字符U+0001是非打印字符,因此您看不到任何输出
int a = 1;
char b = (char) a;
System.out.println(b);
如果要打印出字符“1”,可以在正在使用的编码方案中查找“1”的值。在Unicode中,这是49(与ASCII相同)。但这只适用于数字0-9
您最好使用字符串而不是字符,并使用Java内置的toString()
方法:
int a = 1;
String b = toString(a);
System.out.println(b);
final int RADIX = 10;
int i = 4;
char ch = Character.forDigit(i, RADIX);
System.out.println(ch); // Prints '4'
无论您的系统编码是什么,这都会起作用,并且适用于多位数
int a = 1;
char b = (char) a;
System.out.println(b);
你好,我也遇到过同样的问题,但我做的是下面的代码
int a = 1
char b = Integer.toString(a).charAt(0);
System.out.println(b);
这样,您就可以得到作为字符类型的十进制值。我将charAt()与索引0一起使用,因为该字符串中唯一的值是'a',如您所知,该字符串中'a'的位置从0开始
对不起,如果我的英语没有很好的解释,希望它能帮助你
你好,我也遇到过同样的问题,但我做的是下面的代码
int a = 1
char b = Integer.toString(a).charAt(0);
System.out.println(b);
这样,您就可以得到作为字符类型的十进制值。我将charAt()与索引0一起使用,因为该字符串中唯一的值是'a',如您所知,该字符串中'a'的位置从0开始
对不起,如果我的英语解释得不好,希望能对你有所帮助。我的答案与jh314的答案相似,但我会解释得更深一点
在这种情况下,您应该做的是:
int a = 1;
char b = (char)(a + '0');
System.out.println(b);
在这里,我们使用“0”,因为字符实际上由ASCII值表示0'是一个字符,由值48表示
我们输入了(a+'0')
,为了将它们相加,Java将'0'转换为它的ASCII值,即48,a是1,所以总和是49。我们所做的是:
(char)(49)
我们将int
转换为char
。49的ASCII等效值为“1”。您可以用这种方法将任何数字转换为字符,这比使用.toString()
方法然后用.charAt()
方法减去数字更聪明、更好。我的答案与jh314的答案类似,但我会更深入地解释
在这种情况下,您应该做的是:
int a = 1;
char b = (char)(a + '0');
System.out.println(b);
在这里,我们使用“0”,因为字符实际上由ASCII值表示0'是一个字符,由值48表示
我们输入了(a+'0')
,为了将它们相加,Java将'0'转换为它的ASCII值,即48,a是1,所以总和是49。我们所做的是:
(char)(49)
我们将int
转换为char
。49的ASCII等效值为“1”。您可以用这种方法将任何数字转换为字符,这比使用.toString()
方法然后用.charAt()
方法减去数字更聪明、更好。看起来您正在寻找字符。对于数字方法:
int a = 1;
String b = toString(a);
System.out.println(b);
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'
请注意,通过更改基数
,您还可以支持十六进制(基数16)和最多36个基数(或字符。MAX_基数
,也称为)。您似乎在寻找字符。forDigit
方法:
int a = 1;
String b = toString(a);
System.out.println(b);
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'
请注意,通过更改基数
,您还可以支持十六进制(基数16)和最大为36的任何基数(或字符.MAX_基数
。这里没有人回答真正的“问题”:您正确地将int转换为char;在ASCII表格中,十进制值01是“标题开始”,一个非打印字符。尝试查找ASCII表,并将int值转换为33和7E之间的值;这将为您提供可查看的字符。这里没有人回答真正的“问题”:您正在正确地将int转换为char;在ASCII表格中,十进制值01是“标题开始”,一个非打印字符。尝试查找ASCII表,并将int值转换为33和7E之间的值;这将为您提供可查看的字符。如果要将字符转换为其对应的整数,
int i = 2;
char ch = Integer.toString(i).charAt(0);
System.out.println(ch);
int a = 1;
String value = String.valueOf(a);
char newValue = value.charAt(0);
System.out.println(newValue);
int a = 1;
char b = (char)(a + '0');
System.out.println(b);
int a = 1;
char b = (char)(a-1 + 'a');
System.out.println(b);