我的要求是:
000000030899039 --> 30899039,
0-200IT-700 --> 0-200IT-700,
01-200IT-600 --> 1-200IT-600,
000-200IT-700 --> 0-200IT-700
有办法吗?零之前" - "不应该删除/剥离。
答案 0 :(得分:2)
我建议以下(未经测试):
String str = "...";
int i;
for(i = 0; str.charAt(i) == '0'; i++) {}
str = str.substring(str.charAt(i) == '-' ? i - 1 : i);
答案 1 :(得分:1)
您可以使用正则表达式:
public static void main(String[] args) {
// String numbersWithZeros = "00000003089903";
// String numbersWithZeros = "000-200IT-700";
// String numbersWithZeros = "01-200IT-600";
String numbersWithZeros = "000-200IT-700";
String numbersWithoutZeros = numbersWithZeros.replaceAll("^0*(0-)|^0*", "$1");
System.out.println(numbersWithoutZeros);
}
输出:
30899039
0-200IT-700
...
答案 2 :(得分:1)
您可以使用以下正则表达式:
^0+(?!-)
这匹配字符串开头的1个或多个0。如果零后跟破折号,则不计算。
由于000-xxxx
中的最后一个零后跟一个破折号,因此保留了它。
您可以使用http://www.regexplanet.com/advanced/java/index.html
答案 3 :(得分:0)
==