Подскажите, как удалять пробелы внутри строки?
Input: Я изучаю Java Rush
Output: Я изучаю JavaRush
Как убрать пробелы не используя replace() и replaceAll() ?
Денис
27 уровень
Как убрать пробелы не используя replace() и replaceAll() ?
Обсуждается
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
ГоффMaster
11 февраля 2025, 23:40
Ну смотри, давай логично рассуждать. Ты сформулировал вопрос, вернее, задачу "как удалять пробелы внутри строки". Но если удалить пробелы, то получится "ЯизучаюJavaRush". Это не то, что ты ожидаешь, верно?
То-есть, тебе надо не удалить пробелы, а заменить комбинации из нескольких подряд идущих пробелов на один пробел. Так?
Для замены существуют готовые методы, тобою названные.
Но если не хочешь по каким-то причинам их использовать, то можно написать свой, String replaceAllMultiSpacesWithSingleSpace(String inputString).
Преобразовать строку в список символов и циклом пробежаться, и если (stringAsListOfChars[i] == ' ' && stringAsListOfChars[i + 1] == ' ' ) удалить stringAsListOfChars[i--]
Ну и потом список символов обратно в строку
0
ГоффMaster
11 февраля 2025, 23:46
На всякий случай факт, о котором многие забывают - в уникоде как минимум 14 разных пробелов, а точное их количество никто не знает. Поэтому, если хочешь, что бы это всё стопудово работало с любыми текстами, тебе не обойтись без регулярных выражений.
0
Денис Enterprise Java Developer
12 февраля 2025, 06:02
Единственное - я бы к индексам не вязался, раз все равно новая строка формируется то проще скипать пробелы пока не появится другой символ, и добавить уже его с одним лидирующим пробелом :) Ну мне кажется так проще.
Ну и да, разновидности пробелов та еще головная боль, о ней действительно забывают очень часто.
+1
ГоффMaster
12 февраля 2025, 06:56
Как известно, существуют 62 разных способа добиться одного и того же результата; и все они подробно описаны в Камасутре))
0