【发布时间】:2018-03-11 15:28:19
【问题描述】:
我尝试编写一个完整的十进制到二进制转换器,它工作得很好,现在我想从我的输出字符串中删除不必要的 0,但它并没有删除所有的 0,我不知道为什么。
这是我的代码:
public class Converter {
private static final int[] ARRAY = {16348,8192,4096,2048,1024,512,256,128,64,32,16,8,4,2,1};
public static String toBinary(int number) {
String output = new String();
int number2 = number;
for (int i=0; i<ARRAY.length ; i++) {
if (number2 - ARRAY[i] >= 0) {
output += "1";
number2 -= ARRAY[i];
}
else {
output += "0";
}
}
boolean sorted = false;
int i = 0 ;
while (sorted == false) {
if (output.charAt(i) == '0') {
StringBuilder temp = new StringBuilder(output);
temp.deleteCharAt(i);
output = temp.toString();
i ++;
}
else{
sorted = true;
}
}
return output;
}
}
【问题讨论】:
-
例如,当我使用 7 的二进制文件时,它只会从字符串中删除前 6 个 0。
标签: java if-statement while-loop char