循环没有结束

时间:2017-03-29 15:09:25

标签: java

这是我的代码中的一部分。 我的问题是,即使列表中有零,"数字"此行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));

究竟是什么问题?

1 个答案:

答案 0 :(得分:1)

列表是一个字符列表:

ArrayList<Character> digit = new ArrayList<>();

您正在检查它是否包含整数零:

digit.contains(0)

因为这是一个整数而不是一个字符,所以它将隐式地转换为由该数字which is NULL表示的ASCII字符。字符0用ASCII表示整数48。

如果要检查列表中是否包含字符零,请执行以下操作:

digit.contains('0')