假设我有一个整数,我首先将其转换为二进制字符串。
int symptomsM = 867;
String symptomsBit = Integer.toBinaryString(symptomsM);
在这种情况下,我将使用binaryBit作为二进制的1101100011。
但是如何进一步将其转换为具有相同内容的Int Array,例如
symptomsBitArr[] = {1,1,0,1,1,0,0,0,1,1}
?
好。这是我尝试过的。我知道symptomsBit.split(" ")
并不正确。但不知道如何进一步改进它。
symptomsM = 867;
String symptomsBit = Integer.toBinaryString(symptomsM);
String[] symptomsBitArr = symptomsBit.split(" ");
System.out.println("symptomsBit: " + symptomsBit);
System.out.println("symptomsBitArray: " + symptomsBitArr);
int[] symptomsArray = new int[symptomsBitArr.length];
for (int i = 0; i < symptomsBitArr.length; i++) {
symptomsArray[i] = Integer.parseInt(symptomsBitArr[i]);
System.out.println("symptomsArray: " + symptomsArray);
}
我尝试了Idos建议的方式如下:
symptomsM = 867;
String symptomsBit = Integer.toBinaryString(symptomsM);
String[] symptomsBitArr = symptomsBit.split(" ");
System.out.println("symptomsBit: " + symptomsBit);
System.out.println("symptomsBitArray: " + symptomsBitArr);
int[] symptomsArray = new int[symptomsBitArr.length];
for (int i = 0; i < symptomsBitArr.length; i++) {
//symptomsArray[i] = Integer.parseInt(symptomsBitArr[i]);
symptomsArray[i] = Integer.parseInt(String.valueOf(symptomsBit.charAt(i)));
System.out.println("symptomsArray: " + symptomsArray);
}
但它仍然不起作用。这是输出:
symptomsBitArray: [Ljava.lang.String; @2a139a55
symptomsArray: [I@15db9742
答案 0 :(得分:0)
我认为这应该可以解决问题:
String symptomBit = "1010";
for(int i = 0; i < symptomsBitArr.length; i++) {
symptomsBitArr[i] = Integer.parseInt(String.valueOf(symptomsBit.charAt(i)));
}
// symptomsBitArr = [1,0,1,0]
// print array here
for (int j = 0; j < symptomsBitArr.length; j++) {
System.out.println("symptomsArray: " + symptomsArray[j]);
}
答案 1 :(得分:0)
我知道symptomsBit.split(“”)不正确。但不知道该怎么做 进一步改善它。
是的,你几乎就在那里,但一定是犯了一些小错误。
首先,split()
不正确,因为您尝试将其拆分为" "
,但您需要的是""
,因为它是一个连续的字符串。
这将为您提供您认为正在获得的阵列。但是你也不能正确打印元素。您应该索引到数组以获取要打印的元素。像这样......
int symptomsM = 867;
String symptomsBit = Integer.toBinaryString(symptomsM);
String[] symptomsBitArr = symptomsBit.split("");
System.out.println("symptomsBit: " + symptomsBit);
System.out.println("symptomsBitArray: " + symptomsBitArr);
int[] symptomsArray = new int[symptomsBitArr.length];
for (int i = 0; i < symptomsBitArr.length; i++) {
symptomsArray[i] = Integer.parseInt(symptomsBitArr[i]);
System.out.println("symptomsArray: " + symptomsArray[i]);
}
答案 2 :(得分:0)
我猜你需要二进制字符串的每个值都是 int 类型。
String binString = Integer.toBinaryString(N);
char[] intBinaryArray = binString.toCharArray();
然后在循环时,你可以很容易地做到:
for (int i = 0; i < binString.length() - 1; i++) {
if (Character.getNumericValue(intBinaryArray[i])