Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中将int转换为char_Java_Char_Int - Fatal编程技术网

在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);