当前位置: 首页 > 知识库问答 >
问题:

在java中将int转换为char

袁亦
2023-03-14

下面是一段代码片段,

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个答案

奚飞星
2023-03-14

看起来你在寻找这个角色。对于数字方法

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的任何基数(或最大基数)。

秦跃
2023-03-14

我的答案与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()方法。

宫子晋
2023-03-14
int a = 1;
char b = (char) a;
System.out.println(b);

将使用Unicode代码点1打印字符(标题字符的开头,不可打印;请参阅下表:C0控件和基本拉丁文,与ASCII相同)

int a = '1';
char b = (char) a;
System.out.println(b);

将打印出具有Unicode代码点49的字符(其中一个对应于“1”)

如果你想转换一个数字(0-9),你可以在其中加上48并转换,或者类似于字符。forDigit(a,10)

如果要将int转换为Unicode码点,可以使用字符。例如toChars(48)。

 类似资料:
  • 问题内容: 下面是一个代码片段, 但是我得到的是空输出。 我将得到1作为输出。 有人可以解释吗?如果我想像第一个代码片段一样将int转换为char,该怎么办? 问题答案: 会打印出ascii值为1的字符(首字符,这是不可打印的)。 将以ascii值49输出一个字符(一个对应于“ 1”) 如果要转换数字(0-9),则可以将数字加48并进行转换,例如;。 如果要转换 as asi的ascii值,可以使

  • 问题内容: 我是Java的新手,想知道double转换为int cast如何工作吗?我知道,只需将低32位转换为int就很容易了,但是将double(64位)转换为int(32位)呢?来自二进制的double中的那64位是Double- precision浮点格式(Mantissa),那么它如何在内部转换为int? 问题答案: 所有这些都记录在JLS的5.1.3节中。 第一步,将浮点数转换为lon

  • 我正在使用将整数作为输入参数的第三方服务器。但是,当查询我再次编写的值时,它似乎使用数字的最左边的位作为符号。因此,1000...0(16 位)将返回为 -32768,11000...0 将返回为 -16384,依此类推。 鉴于Java不知道uints,我正在寻找一种有效的方法将负数转换为正确的正数(第一个是2^15,第二个是2^ 15 2^24,依此类推)。

  • 问题内容: (我是Java编程的新手) 我有例如: 我需要在撇号中得到数字9本身。我尝试执行以下操作 但这没用。 那么我该怎么做才能得到撇号呢? 问题答案: ASCII表的排列方式是使字符的值比的值大九;字符的值比的值大8 ; 等等。 因此,您可以通过减去以获得十进制数字char的int值。

  • 问题内容: 我正在尝试将int []转换为bytes。它也被转换。 我的转换代码是这样的。 假设我输入一个int [] = {10,11,15,41,12,8,4,23,5,17,23,36,6}现在我希望字节数组像这样{10,0 ,0,0,11,0,0,0,15,0,0,0,41,0,0,0,12,0,0,0,8,0,0,0,4,0,0 ,0,23,0,0,0,5,0,0,0,17,0,0,0,

  • 问题内容: 我有一个以网络字节顺序包含IP地址的地址,我想将其转换为对象。我看到有一个采用的构造函数,是否有必要将转换为第一个,还是有其他方法? 问题答案: 这应该工作: 您可能需要交换字节数组的顺序,但我无法弄清楚是否会以正确的顺序生成该数组。