подстрока (Java) не работает, как я ожидал - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть код, который должен удалить 2 элемента из строки.Работает нормально с буквенно-цифровыми цифрами, но когда я ввел строку с тем же номером, то есть просто «1»: (111111111), ничего не возвращает мне или просто «1» или что-то очень отличающееся от того, что я ожидал.

Вот мой код:

String str= "222222222";
System.out.println(str.replace(str.substring(3, 5), ""));           }

в этом случае возвращает «2», но если строка с одним «2» меньше, ничего не возвращает

Я ценю вашу помощь:)

1 Ответ

0 голосов
/ 03 декабря 2018

Если str равно "222222222", то str.substring(3,5) равно "22".Итак, вы звоните str.replace("22", ""), который заменяет каждые "22" на "".

Если вы хотите вырезать фрагмент строки, вы можете просто выбрать остальныеиспользуя substring.

System.out.println(str.substring(0,3) + str.substring(5));

В качестве альтернативы, StringBuilder имеет delete метод:

StringBuilder sb = new StringBuilder(str);
sb.delete(3,5);
System.out.println(sb);

Вы можете использовать sb.toString() для преобразованияStringBuilder вернуться к строке.

...