变量类型转换

时间:2019-09-09 11:03:41

标签: 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;
}

打印出来后
它给了我这样的东西

| B @ #

3 个答案:

答案 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时可能会发生溢出。