Удалить определенные символы из строки в Java
В этом посте будет обсуждаться, как удалить определенные символы из строки в Java.
1. Использование String.replaceAll() метод
Стандартное решение для замены каждой подстроки строки, которая соответствует заданному регулярному выражению, использует метод String.replaceAll() метод.
Его можно использовать для удаления определенных символов из строки, как показано ниже. Следующий код заменяет все совпадения регулярного выражения \w с пустой строкой «» . Обратите внимание, что \w это предопределенный класс символов, который обозначает словесный символ [a-zA-Z_0-9] .
Программирование на C, C# и Java
Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы
ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: vscoderu@yandex.ru, https://vk.com/vscode
Удаление символа из строки Java
В языке Java для строковых полей типа String отсутствует метод удаления символа с указанным индексом (в C# это метод Remove). Поэтому, чтобы произвести удаление символа из строки в Java нужно пойти на некоторые ухищрения. Рассмотрим в данном уроке один из таких способов.
Удаление символа с помощью комбинации методов substring
В Java у строк есть метод substring(int startIndex, int endIndex), который возвращает подстроку из исходной строки с позиции startIndex (включительно) до endIndex (не включительно). Нумерация индексов начинается с нуля.
С помощью данного метода извлечём из исходной строки две подстроки до и после удаляемого элемента (его индекс обозначим, как deletePosition) и соединим их в одну. Тем самым в новой строке будет отсутствовать символ с индексом deletePosition.
StringBuilder

Строки в Java — это неизменяемые объекты (immutable). Так было сделано для того, чтобы класс-строку можно было сильно оптимизировать и использовать повсеместно. Например, в качестве ключей у коллекции HashMap рекомендуется использовать только immutable-типы.
Однако часто возникают ситуации, когда программисту все же было бы удобнее иметь String -класс, который можно менять. Который не создает новую подстроку при каждом вызове его метода.
Например, у нас есть очень большая строка и мы часто дописываем что-то в ее конец. В этом случае даже коллекция символов ( ArrayList<Character> ) может быть эффективнее, чем постоянное пересоздание строк и конкатенации объектов типа String .
Именно поэтому в язык Java все же добавили тип String, который можно менять. Называется он StringBuilder .
Создание объекта
Чтобы создать объект StringBuilder на основе существующей строки, нужно выполнить команду вида:
Чтобы создать пустую изменяемую строку, нужно воспользоваться командой вида:
Класс StringBuilder имеет два десятка полезных методов, вот самые важные из них:
Метод | Описание |
---|---|
Преобразовывает переданный объект в строку и добавляет к текущей строке | |
Преобразовывает переданный объект в строку и вставляет в текущую строку | |
Заменяет часть строки, заданную интервалом start..end на переданную строку | |
Удаляет из строки символ под номером index | |
Удаляет из строки символы, заданные интервалом | |
Ищет подстроку в текущей строке | |
Ищет подстроку в текущей строке с конца | |
Возвращает символ строки по его индексу | |
Возвращает подстроку, заданную интервалом | |
Разворачивает строку задом наперед. | |
Изменяет символ строки, заданный индексом на переданный | |
Возвращает длину строки в символах |
Вот краткое описание каждого метода
2. Краткое описание методов
Добавление к строке
Чтобы что-то добавить к изменяемой строке ( StringBuilder ), нужно воспользоваться методом append() . Пример:
Код | Описание |
---|
Преобразование к стандартной строке
Чтобы преобразовать объект StringBuilder к строке типа String, нужно просто вызвать у него метод toString() . Пример
Код | Вывод на экран |
---|
Как удалить символ?
Чтобы удалить символ в изменяемой строке, вам нужно воспользоваться методом deleteCharAt() . Пример:
How to Remove Character from String in Java
Sometimes we have to remove characters from a String in Java. There is no remove() method in String class to do this.
Table of Contents
Java Remove Character from String
Java String class has various replace() methods. We can use this to remove characters from a string. The idea is to pass an empty string as a replacement.
Let’s look at the replace() methods present in the String class.
- replace( char oldChar, char newChar) : This method returns a new string where oldChar is replaced with newChar. This method replaces all the occurrences of the oldChar with the newChar character.
- replace(CharSequence target, CharSequence replacement) : This method replaces the target substring with the replacement substring. This method replaces all the matches of target substring with the replacement substring.
- replaceFirst(String regex, String replacement) : This method replaces the first match of the regex with the replacement string. This method is useful when we have to replace only the first occurrence of the substring.
- replaceAll(String regex, String replacement) : It’s like the replaceFirst() method. The only difference is that all the occurrences of the matched regex are replaced with the replacement string.
NOTE: There is no empty character constant. So we can’t use the first replace(char c1, char c2) method to remove a character from the string. We will have to use any of the other three methods by passing an empty string as a replacement.
Java String Replace Empty Character Compiler Error
Java Remove Character from String Example
Let’s look at a simple example to remove all occurrences of a character from the string.
Java String Remove Character Example
Java Remove Substring from String Example
Let’s look at an example to remove a substring from the string.
Java Remove Substring Regex Example
The replaceFirst() and replaceAll() methods accept regular expression as the first argument. We can use it to remove a pattern from the string. For example, remove all the lowercase characters from the string.
Remove Whitespaces from the String
Let’s look at an example to remove all the whitespaces from the string.
What if the string has tab-character?
Let’s see how to remove tab-character and whitespaces from the string.
We can also use regex for this.
How to Remove the Last Character from the String?
There is no method to remove the last character from the string. We can achieve this using substring() method.
Conclusion
We don’t need remove() method to remove characters from the string. The replace() methods are good enough for this task.