首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java中计算Integer的尾随零?(例: 234000 => 3零)

如何在Java中计算Integer的尾随零?(例: 234000 => 3零)
EN

Stack Overflow用户
提问于 2014-09-10 19:21:06
回答 8查看 12.2K关注 0票数 7

标题几乎是不言自明的。:)

代码语言:javascript
复制
1232 => 0
1231030 => 1
2000 => 3
34444400000 => 5
EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2014-09-10 19:23:44

如果它适合于int/long,只需检查数字模10是否为0,并保留一个计数器:

代码语言:javascript
复制
long x = ...
if (x == 0) {
    return 0;
}
int counter = 0;
while (x % 10 == 0) {
    counter++;
    x /= 10;
}

如果它太大,无法适应long,那么将其存储在一个String中,并从最后一个字符计数零:

代码语言:javascript
复制
String s = ...
int counter = 0;
while(counter < s.length() && s.charAt(s.length() - 1 - counter) == '0') {
    counter++;
}
票数 11
EN

Stack Overflow用户

发布于 2021-04-23 07:40:15

Integer类有一个内置函数来计数尾随零。javadocs

代码语言:javascript
复制
int trailingZeroes = Integer.numberOfTrailingZeros(int i);
票数 5
EN

Stack Overflow用户

发布于 2014-09-10 19:23:16

三行:

代码语言:javascript
复制
int zeroes = 0
while(num%10 == 0 && num != 0) {
  zeroes++;
  num /= 10;
}

这使用了模算子。只要我们可以除以没有剩余的十,就增加计数器。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25773422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档