检查整数以查看它是否包含零

2022-09-04 05:02:10

给定一个整数,如何使用Java检查它是否包含0?

1 = Good
2 = Good
...
9 = Good
10 = BAD!
101 = BAD!
1026 = BAD!
1111 = Good

如何做到这一点?


答案 1

您的意思是如果十进制表示形式包含0吗?绝对最简单的方法是:

if (String.valueOf(x).contains("0"))

不要忘记,一个数字并不“固有地”包含0或不包含0(当然,除了零本身) - 这取决于基数。因此,十进制中的“10”是十六进制中的“A”,十六进制中的“10”是十进制中的“16”...在这两种情况下,结果都会改变。

可能有更有效的方法来测试整数的十进制表示形式中是否存在零,但它们可能比上面的表达式涉及更多。


答案 2

如果由于某种原因您不喜欢转换为字符串的解决方案,您可以尝试:

boolean containsZero(int num) {
    if(num == 0)
        return true;

    if(num < 0)
        num = -num;

    while(num > 0) {
        if(num % 10 == 0)
            return true;
        num /= 10;
    }
    return false;
}

这也假设以 10 为基数。num

编辑:添加了处理负数和0本身的条件。