如何在Java中统计整数的尾随零?(例如:234000 => 3个零)

chr*_*tek 4 java integer

标题几乎是自我解释的.:)

1232 => 0
1231030 => 1
2000 => 3
34444400000 => 5
Run Code Online (Sandbox Code Playgroud)

Lui*_*oza 9

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

long x = ...
if (x == 0) {
    return 0;
}
int counter = 0;
while (x % 10 == 0) {
    counter++;
    x /= 10;
}
Run Code Online (Sandbox Code Playgroud)

如果它太大而无法放入long,请将其存储在a中String并从最后一个char中计算零:

String s = ...
int counter = 0;
while(counter < s.length() && s.charAt(s.length() - 1 - counter) == '0') {
    counter++;
}
Run Code Online (Sandbox Code Playgroud)


小智 6

Integer 类有一个内置函数来计算尾随零。 java文档

int trailingZeroes = Integer.numberOfTrailingZeros(int i);
Run Code Online (Sandbox Code Playgroud)