将整数值存储为字符 Java

Storing Integer value as A Character Java

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

我想将整数值存储到 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;

    }

这里发生的事情是在很多情况下我得到的是空值。 我试图查看字符 class 但找不到任何函数。

如果有什么办法请告诉。 提前致谢。

编辑:我需要存储 0 或 1

编辑:ch1[] & ch2[] ar of char

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

你可以做到

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

当你打电话时Character.getNumericValue(someChar);您实际上是在获取值的整数文字。

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

但如果 char 的值不是 0 到 9,则无法获得数字值

如果您真的想要存储在 char 变量中的所有字节值的整数值,那么您必须将其直接类型转换为整数,如下所示。

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

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

也许您的转化来自 char ch = (char)num3;不对吗?

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

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

如果你知道你的整数是一位数,那么你可以使用 Character 的 forDigit 方法进行从 intchar

的转换
Character.forDigit(9,10) --> '9'

来自官方docs,

Determines the character representation for a specific digit in the specified radix.

参数:

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

Returns:

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