这是我的代码中的一部分。
我的问题是,即使列表中有零,"数字"此行System.out.println(digit.contains(0));
也会打印为false。
int x = 5;
int y = 0;
int z;
ArrayList<Character> digit = new ArrayList<>();
char[] new_digit = {};
boolean end_loop = true;
do {
z = x * y;
new_digit = ("" + z).toCharArray();
for (int k = 0; k < new_digit.length; k++) {
if (!digit.contains(new_digit[k])) {
digit.add(new_digit[k]);
}
}
System.out.println(digit.contains(0));
究竟是什么问题?
答案 0 :(得分:1)
列表是一个字符列表:
ArrayList<Character> digit = new ArrayList<>();
您正在检查它是否包含整数零:
digit.contains(0)
因为这是一个整数而不是一个字符,所以它将隐式地转换为由该数字which is NULL表示的ASCII字符。字符0用ASCII表示整数48。
如果要检查列表中是否包含字符零,请执行以下操作:
digit.contains('0')