正则表达式是这个工作的最好的工具;它应该取决于问题规范。以下删除前导零,但如果需要,则留下一个(即,它不会将“0”转换为空白字符串)。
s.replaceFirst("^0+(?!$)", "")
^ anchor将确保匹配的0在输入的开始。 (?!$)负前瞻确保不会匹配整个字符串。
测试线束:
String[] in = {
"01234", // "[1234]"
"0001234a", // "[1234a]"
"101234", // "[101234]"
"000002829839", // "[2829839]"
"0", // "[0]"
"0000000", // "[0]"
"0000009", // "[9]"
"000000z", // "[z]"
"000000.z", // "[.z]"
};
for (String s : in) {
System.out.println("[" + s.replaceFirst("^0+(?!$)", "") + "]");
}
也可以看看