[英]How to convert Binary String to int array?
假设我有一个整数,我首先将其转换为二进制字符串。
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
我认为这应该可以解决问题:
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]);
}
我知道 conditionsBit.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]);
}
我猜你需要二进制字符串的每个值都是 int 类型。
String binString = Integer.toBinaryString(N);
char[] intBinaryArray = binString.toCharArray();
然后在循环时,您可以轻松地执行以下操作:
for (int i = 0; i < binString.length() - 1; i++) {
if (Character.getNumericValue(intBinaryArray[i])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.