这不可以吗?我之前使用过 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 + ",");
}
最佳答案
尽量贴近代码的精神(不一定是最有效的做事方式):
您需要根据“无”拆分 - 即
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
是纯数字。
关于java - 将单个二进制字符串值拆分为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21373842/