将整数值存储为字符Java

时间:2015-04-09 18:42:04

标签: java integer character

我试图查看以前的堆栈溢出问题,但找不到任何类似的问题。

我想将整数值存储到char变量,但整数值存储在另一个变量中。

    char[] ch1 = (binary1.toString()).toCharArray();
    char[] ch2 = binary2.toString().toCharArray();

    if (ch1.length >= ch2.length) {

        char[] ch = new char[ch1.length];
        int j = 0;
        int num1;
        int num2;
        int num3;

        for (int i = 0; i < ch1.length; i++) {

            if (j == ch2.length - 1)
                j = 0;

            num1 = Character.getNumericValue(ch1[i]);
            num2 = Character.getNumericValue(ch2[j]);
            num3 = num1 ^ num2;

            ch[i] = (char) num3;

            j++;
        }
        String str = new String(ch);

        return str;

    }

这里发生的事情是我在许多情况下获得空值。 我试图查看Character类但找不到任何函数。

如果有任何办法,请告诉我。 提前谢谢。

编辑:我需要存储0或1

编辑:ch1 []&amp; ch2 [] ar为char类型

编辑:我得到了一个临时解决方案,但是对于更广泛的概念,如果大小相同并且获取空值,我们应该如何将整数转换为char。

4 个答案:

答案 0 :(得分:0)

你可以做到

char ch = num3 == 0 ? '0' : '1';

答案 1 :(得分:0)

致电Character.getNumericValue(someChar)时;您实际上是获取值的整数字面值。

在这种情况下让我们说someChar='4';,上面的方法会给你一个值4。

但如果char的值不是0到9

,则无法获取numaric值

如果你真的想要存储在char变量中的字节值的整数值,那么你必须直接将它转换为一个整数,如下所示。

char x = 'Z';
int z = x;
System.out.println(z);

上面的代码片段将打印90,因为Z与ascii中的90相等。

答案 2 :(得分:0)

也许你的转换来自 char ch = (char)num3;不对?

也许你可以尝试使用类似的东西 Character.toChars(65)

有关相关信息,请参阅此答案:Converting stream of int's to char's in java

答案 3 :(得分:0)

如果您知道您的整数是一位数字,那么您可以使用字符的forDigit方法进行从intchar的转换

Character.forDigit(9,10) --> '9'

来自官方docs

  

确定中特定数字的字符表示形式   指定的基数。

参数:

  • digit - 要转换为字符的数字。
  • radix - the radix。

退货:

指定基数中指定数字的char表示。