检查整数以查看它是否包含零
给定一个整数,如何使用 Java 检查它是否包含 0?
1 = Good 2 = Good ... 9 = Good 10 = BAD! 101 = BAD! 1026 = BAD! 1111 = Good
这怎么能做到呢?
Given an integer, how could you check if it contains a 0, using Java?
1 = Good 2 = Good ... 9 = Good 10 = BAD! 101 = BAD! 1026 = BAD! 1111 = Good
How can this be done?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
你的意思是十进制表示中是否包含0?绝对最简单的方法是:
不要忘记数字并不“固有”包含或不包含0(当然,零本身除外) - 它取决于基数。因此,十进制的“10”是十六进制的“A”,十六进制的“10”是十进制的“16”......在这两种情况下,结果都会改变。
可能有更有效的方法来测试整数的十进制表示中是否存在零,但它们可能比上面的表达式更复杂。
Do you mean if the decimal representation contains a 0? The absolute simplest way of doing that is:
Don't forget that a number doesn't "inherently" contain a 0 or not (except for zero itself, of course) - it depends on the base. So "10" in decimal is "A" in hex, and "10" in hex is "16" in decimal... in both cases the result would change.
There may be more efficient ways of testing for the presence of a zero in the decimal representation of an integer, but they're likely to be considerably more involved that the expression above.
如果由于某种原因您不喜欢转换为字符串的解决方案,您可以尝试:
这也假设
num
是以 10 为基数。编辑:添加了处理负数和 0 本身的条件。
If for some reason you don't like the solution that converts to a String you can try:
This is also assuming
num
is base 10.Edit: added conditions to deal with negative numbers and 0 itself.
您可以将其转换为字符串并检查它是否包含字符“0”。
You can convert it to a string and check if it contains the char "0".
Integer.toString(yourIntValue).contains("0");
Integer.toString(yourIntValue).contains("0");
这是一个用于检测整数中的零的例程。要使其适用于任何表示形式(十进制、十六进制、八进制、二进制),您需要传入基数作为参数。
Here is a routine that will work detect zeros in integers. To make it work with any representation (decimal, hex, octal, binary), you need to pass in the base as a parameter.
我不知道这是否更容易,但这是另一种方法。
将数字拆分为整数数组。然后排序并检查第一个元素是否为零。
例如
I don't know if this is easier but here is another way.
Split the number into an array of ints. Then sort and check if the first element is zero.
E.g
不使用 Java,但从 C++ 转换并不难
附言。任何使用字符串转换的人都感到羞耻。
Not using Java, but it's not exactly hard to convert from C++
PS. Shame on anyone using string conversion.