我在java中创建二进制到denary转换器。我已经在网上看了,似乎很清楚,从java中的数组列表中获取一个元素是.get。但是当我使用它时,我得到一个错误,“分配的左侧必须是变量”。 以下是我的代码的相关部分
ArrayList binarynew = new ArrayList();
int finished = 0;
int[] numbers = {128,64,32,16,8,4,2,1};
for (int k = 0; k<7; k++){
if (binarynew.get(k) = '1'){
finished = finished + numbers[k];
}
}
System.out.println(finished);
答案 0 :(得分:0)
要评估Java中的相等性,您必须使用==
,而不是=
,它用于为变量赋值。所以替换:
if (binarynew.get(k) = '1')
by:
if (binarynew.get(k) == '1')
请注意,将==
与参考变量一起使用时必须小心,它取决于Arraylist
的类型。如果适用,请考虑使用equals()
。
答案 1 :(得分:0)
错误显然是由于分配造成的。使用'=='代替'='。
当List为空时,代码也会抛出IndexOutOfBound异常。 这样做:
List<Integer> binarynew = Arrays.asList(128, 64, 32, 16, 8, 4, 2, 1);
int finished = 0;
int[] numbers = {128, 64, 32, 16, 8, 4, 2, 1};
for (int k = 0; k <= 7; k++) {
if (binarynew.get(k) == 1) {
finished = finished + numbers[k];
}
}
System.out.println(finished);