说我有一个整数,我首先将其转换为二进制字符串。
int symptomsM = 867;
String symptomsBit = Integer.toBinaryString(symptomsM);
在这种情况下,我将使用二进制形式将症状位设置为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
我知道症状Bit.split(“”)不正确。但是不知道如何进一步改进它。
是的,您快要到了,但肯定犯了一些小错误。
首先,这split()
是不正确的,因为您尝试在" "
s上拆分它,但您需要的是""
s,因为它是一个连续的字符串。
这将为您提供您认为得到的阵列。但是您也不会正确打印元素。您应该索引数组以获取要打印的元素。像这样
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]);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句