Я пытаюсь удалить все начальные ноль из номера части строки. Я придумал этот код (ниже). Из данного примера это сработало. Но когда я добавляю «0» в начале, он не даст правильного вывода. Кто-нибудь знает, как добиться этого? Заранее спасибоУдалите все начальные ноль из номера части строки
вход: (2016) abc00701def00019z -> выход: (2016) abc701def19z -> resut: правильно
вход: 0 (2016) abc00701def00019z -> выход: (2016) abc71def19z -> результат: неправильно -> ожидаемый выход: (2016) abc701def19z
EDIT: Строка может содержать не английский алфавит.
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));
Я уверен, что для него существует регулярное выражение, но вы также можете вывести все числа и преобразовать их в int. это приведет к удалению всех ведущих нулей. вам нужно только заменить предыдущие значения новыми – XtremeBaumer
@XtremeBaumer Но это не получится для очень больших числовых последовательностей, которые слишком велики для int, чтобы удерживать – Sentry
@ Sentry не уверен, но, возможно, BigInteger также удаляет ведущие нули. и я сомневаюсь, что у вас будет строка, содержащая число для перегрузки bigInteger – XtremeBaumer