我无法将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;
}
打印出来后
它给了我这样的东西
| B @ #
答案 0 :(得分:2)
您不能使用char
存储数字值。这是因为当您将一个int值存储为char变量类型时,会发生如下转换:
char i = 60 + 5;
在这里,我将存储
A
,它的Unicode值为65
。
类似地,当将char值存储到int时,类型转换发生如下:
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
;
答案 1 :(得分:0)
尝试,这应该对您有帮助。
int a = 1
char b = Integer.toString(a).charAt(0);
System.out.println(b);
答案 2 :(得分:0)
对于打印号码,应将输出转换为int
。
char[] char_array = new char[10];
for(int i = 0; i < 10; i ++)
{
int calculation = i * 4;
char_array[i] = (char) calculation;
}
for(int i = 0; i < 10; i ++)
{
System.out.println( (int) char_array[i] );
}
但是在这种情况下,请考虑直接使用int[]
来回投射。
还请注意,存储char c = (int) 256
时可能会发生溢出。