小M在工作时遇到了一个问题,他需要将用户输入的不带千分位逗号的数字字符串转换为带千分位逗号的格式,并且保留小数部分。小M还发现,有时候输入的数字字符串前面会有无用的 0,这些也需要精简掉。请你帮助小M编写程序,完成这个任务。
代码public class Main {
public static String solution(String s) {
// 1. 去除前导零
s = s.replaceFirst("^0+(?!$)", "");
// 2. 分割整数和小数部分
String[] parts = s.split("\\.");
String integerPart = parts[0];
String decimalPart = parts.length > 1 ? "." + parts[1] : "";
// 3. 格式化整数部分
StringBuilder formattedIntegerPart = new StringBuilder();
int len = integerPart.length();
for (int i = 0; i < len; i++) {
if (i > 0 && (len - i) % 3 == 0) {
formattedIntegerPart.append(",");
}
formattedIntegerPart.append(integerPart.charAt(i));
}
// 4. 合并结果
return formattedIntegerPart.toString() + decimalPart;
}
public static void main(String[] args) {
System.out.println(solution("1294512.12412").equals("1,294,512.12412"));
System.out.println(solution("0000123456789.99").equals("123,456,789.99"));
System.out.println(solution("987654321").equals("987,654,321"));
}
}