不可能这样做吗?我之前使用了split()方法来拆分字符串并将它们存储到数组中。但我似乎无法为二进制字符串值这样做..
例如:我希望将“100000”拆分并存储在一个数组中:someArray = {1,0,0,0,0,0} 但我似乎无法做到这一点。它会导致这样的结果:someArray = {100000,0,0,0,0,...}
这就是我所拥有的:
result = Integer.toBinaryString(sum);
String[] temp = result.split(" ");
for(int num: resultArray) {
for(String s: temp) {
resultArray[num] = Integer.parseInt(temp[s]);
}
}
for(int num: resultArray) {
System.out.print(num + ",");
}
答案 0 :(得分:0)
努力接近代码的精神(不一定是最有效的做事方式):
你需要分开“没有” - 即
String[] temp = result.split("");
根据更新的问题更新了代码:
String result;
Integer sum = 123;
int[] resultArray = new int[32];
Integer ii;
result = Integer.toBinaryString(sum);
String[] temp = result.split("");
ii = 0;
for(String s: temp) {
try {
resultArray[ii++] = Integer.parseInt(s);
} catch (NumberFormatException e) {
// do nothing
}
}
int n = ii;
for (ii = 0; ii < n; ii++) {
System.out.print(resultArray[ii]);
}
System.out.println();
输出:
01111011
我将数组的大小限制为32 - 对于int来说是典型的...如果您希望sum
可能是更长的类型,则需要相应地进行调整。
顺便说一句,使用
会更快string[] temp = result.toCharArray();
ii = 0;
for(char s: temp) {
resultArray[ii++] = s - '0';
}
int n = ii;
for (ii = 0; ii < n; ii++) {
System.out.print(resultArray[ii]);
}
因为您知道result
纯粹是数字。
答案 1 :(得分:0)
首先将String
转换为char
数组,然后将其转换为int
String str = "100000";
char ch [] = str.toCharArray();
int [] temp = new int [ch.length];
for (int i = 0; i < ch.length; i++) {
temp[i] = Integer.parseInt(""+ch[i]);
}