我正在尝试从字符串的数字部分中移除所有前导零。我想出了以下代码。从给定的示例可以看出它起作用。但是,当我在开头添加一个'0'时,它将无法给出正确的输出。有人知道如何实现吗?提前致谢。
输入:(2016)abc00701def00019z -> 输出:(2016)abc701def19z -> 结果:正确
输入:0(2016)abc00701def00019z -> 输出:(2016)abc71def19z -> 结果:错误 -> 期望输出:(2016)abc701def19z
编辑:该字符串可能包含英文字母以外的字符。
输入:(2016)abc00701def00019z -> 输出:(2016)abc701def19z -> 结果:正确
输入:0(2016)abc00701def00019z -> 输出:(2016)abc71def19z -> 结果:错误 -> 期望输出:(2016)abc701def19z
编辑:该字符串可能包含英文字母以外的字符。
String localReference = "(2016)abc00701def00019z";
String localReference1 = localReference.replaceAll("[^0-9]+", " ");
List<String> lists = Arrays.asList(localReference1.trim().split(" "));
System.out.println(lists.toString());
String[] replacedString = new String[5];
String[] searchedString = new String[5];
int counter = 0;
for (String list : lists) {
String s = CharMatcher.is('0').trimLeadingFrom(list);
replacedString[counter] = s;
searchedString[counter++] = list;
System.out.println(String.format("Search: %s, replace: %s", list,s));
}
System.out.println(StringUtils.replaceEach(localReference, searchedString, replacedString));