我目前正在尝试编写一个简单的函数来转换整数,反之亦然,写一个3位二进制字符串,填充为零。为了测试intToBinary方法,我创建了一个简单的循环,添加整数1到5并将每个数字转换为二进制字符串,然后将这些二进制字符串组合成一个更大的字符串。
ArrayList cityList = new ArrayList();
String gene = "";
for(int i = 1; i<5;i++){
cityList.add(i, i);
gene += intToBinary(i);
System.out.println(gene + "" + cityList.get(i));
}
System.out.println(gene);
当我尝试运行这一小段代码时,我在cityList.get(i)
收到错误
Object.get(i)
方法不应该在索引i返回变量吗?
我尝试通过int
初始化另一个int cityNum = (int)cityList.get(i)
,但收到的错误是找到了Object
而不是int
。
Object.add(int index, Object)
中使用的变量类型为int
,因此get方法应返回int
变量。
答案 0 :(得分:1)
如果我理解你的问题,你可以用
之类的东西来做for (int i = 0; i < Math.pow(2, 3); i++) {
StringBuilder sb = new StringBuilder(Integer.toBinaryString(i));
while (sb.length() < 3) {
sb.insert(0, '0');
}
System.out.printf("%d = %s%n", i, sb.toString());
}
输出
0 = 000
1 = 001
2 = 010
3 = 011
4 = 100
5 = 101
6 = 110
7 = 111
反之亦然,您可以使用Integer.parseInt(String,int)
之类的
int val = Integer.parseInt("001", 2); // <-- 1