我目前正在尝试编写一个简单的函数,将整数转换为带零填充的 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 cityNum = (int)cityList.get(i)
来初始化另一个 int
但出现错误,指出找到了 Object
一个 int
。
在 Object.add(int index, Object)
中使用的变量类型是 int
所以 get 方法应该返回一个 int
变量。
最佳答案
如果我理解你的问题,你可以用类似的东西来做
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
关于java - 让 ArrayList.get() 返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26520805/