我试图从一个整数中移除尾随零,这是我目前为止的代码。
import java.math.BigInteger;
public class newuhu {
public static int numTrailingZeros(int s) {
BigInteger J = BigInteger.valueOf(s);
String sb = J.toString();
String Y = "";
while (sb.length() > 0 && sb.charAt(sb.length() - 1) == '0') {
sb.replaceAll("0"," ");
}
return Integer.parseInt(Y);
}
注意:我把int变成了Biginteger,因为有人警告我,有些输入看起来可能是20!,也就是2.432902e+18。
但是,我的IntelliJ调试工具告诉我,变量sb不在循环中。因此,我正在努力理解必须做些什么来确保sb
在循环中。
请理解我是Java的初学者,所以,我正在尝试学习一些新的东西。
发布于 2022-09-21 12:11:49
这里的问题是sb.replaceAll("0","")
什么也不做。您正在丢弃包含已替换字符串的返回值。见这里。
你可能想要的是这样的东西:
while (sb.length() > 0 && sb.charAt(sb.length() - 1) == '0') {
sb = sb.replaceAll("0"," ");
不过,我不确定您是否需要一个while
循环。ReplaceAll会..。用空格替换所有的零。
https://stackoverflow.com/questions/73800397
复制相似问题