我试图查看以前的堆栈溢出问题,但找不到任何类似的问题。
我想将整数值存储到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。
答案 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
方法进行从int
到char
的转换
Character.forDigit(9,10) --> '9'
来自官方docs,
确定中特定数字的字符表示形式 指定的基数。
参数:
退货:
指定基数中指定数字的char表示。