【发布时间】:2020-07-21 21:45:29
【问题描述】:
public static int conversion(int n) {
String str = Integer.toString(n); //int to string
String str1= str.replace('0', '5'); //replace the character in string
int result1 = Integer.parseInt(str1); //string to int
int result = result1;
return result;
}
我正在尝试将字符从“0”替换为“5”。 当前代码有效,但前提是前面没有'0'。
示例:'50005' -> '55555' (o) ; '00005000' -> '5555' (x)
我应该添加什么或知道什么来修复这个错误?
【问题讨论】:
-
因为
555和00000555是相同的数字,根据数学。 -
Integer.toString永远不会返回带有前导零的字符串。int文字00005000实际上是八进制表示,将被解释为2560->conversion(00005000)等于conversion(2560)并将返回2565