Java 变量类型转换

Java 变量类型转换,java,Java,我无法将int变量分配到char[]数组中 我试过打字,但没有达到我的预期效果 编译器不断返回我不想要的ASCII值。我要的是实际的数字 char[] char_array = new char[10]; for(int i = 0; i < 10; i ++) { int calculation = i * (d - 1); char_array[i] = (char) calculation; } 打印后 它给了我这样的东西 |试试看,这会对你有帮助的 int a = 1 c

我无法将int变量分配到char[]数组中

我试过打字,但没有达到我的预期效果 编译器不断返回我不想要的ASCII值。我要的是实际的数字

char[] char_array = new char[10];
for(int i = 0; i < 10; i ++)
{
  int calculation = i * (d - 1);
  char_array[i] = (char) calculation;
}
打印后 它给了我这样的东西


|试试看,这会对你有帮助的

int a = 1
char b = Integer.toString(a).charAt(0);
System.out.println(b);

对于打印数字,您应该将输出转换为int

char[]char_数组=新字符[10]; forint i=0;i<10;我++ { int计算=i*4; 字符数组[i]=字符计算; } forint i=0;i<10;我++ { System.out.println int char_数组[i]; }

但是,在这种情况下,考虑使用INT[]直接而不是向前和向后铸造。

还要注意的是,在存储char c=int 256时可能会发生溢出。

不能使用char存储数值。这是因为当您将int值存储到char变量类型时,会发生如下转换:

char i = 60 + 5;
int i = 'A'
在这里,我将存储一个Unicode值为65的

类似地,当您将char值存储到int时,类型转换如下所示:

char i = 60 + 5;
int i = 'A'
这将存储65

这就是java在int和char之间执行类型转换的方式

因此,要处理这种情况,请使用以下代码:

int[] int_array = new int[10];
for(int i = 0; i < 10; i ++)
{
int calculation = i *8 /2 ...;
int_array[i] = calculation;
}

或者,如果想要精确的结果,也可以使用double

i*8/2。。。;不是有效的Java expressionSystem.out.printint'a';如果需要这些数字,请将它们存储到int[]中。您使用的是char[],其中包含字符,默认情况下,它们以字符形式打印,而不是以数字形式打印。使用System.out.printcalculation可以返回所有数字,但问题是这些值无法转换为字符类型。有没有办法解决这个问题?谢谢你。不,我8/2。。。;这只是一个例子。实际上是d*d-1I刚刚意识到char只接受1个位置值,Java不使用ASCII。char是一个UTF-16代码单元。UTF-16是Unicode字符集的几种字符编码之一。