Как удалить символ из строки в Java

Введение

В этой статье вы узнаете несколько различных способов удаления символа из объекта String в Java. Хотя в классе String нет метода remove(), вы можете использовать вариации метода replace() и метода substring() для удаления символов из строк.

Примечание: Объекты String являются неизменяемыми, что означает, что их нельзя изменить после их создания. Все описанные в этой статье методы класса String возвращают новый объект String и не изменяют исходный объект. Тип строки, который вы используете, зависит от требований вашей программы. Узнайте больше о других типах строковых классов и почему строки неизменяемы в Java.

Класс String имеет следующие методы, которые вы можете использовать для замены или удаления символов:

  • replace(char oldChar, char newChar): Возвращает новый объект String, который заменяет все вхождения oldChar в заданной строке на newChar. Вы также можете использовать метод replace() в формате replace(CharSequence target, CharSequence replacement), чтобы вернуть новый объект String, заменяющий подстроку в заданной строке.
  • replaceFirst(String regex, String replacement): Возвращает новый объект String, заменяющий первое подстроку, соответствующую регулярному выражению в заданной строке, на замену.
  • replaceAll(String regex, String replacement): Возвращает новый объект String, заменяющий каждую подстроку, соответствующую регулярному выражению в заданной строке, на замену.
  • substring(int start, int end): Возвращает новый объект String, содержащий подпоследовательность символов, находящихся в данный момент в этой последовательности. Подстрока начинается с указанного начала и продолжается до символа с индексом конца минус 1.

Обратите внимание, что первым аргументом для методов replaceAll() и replaceFirst() является регулярное выражение. Вы можете использовать регулярное выражение для удаления шаблона из строки.

Примечание: Вам нужно использовать двойные кавычки для указания литеральных строковых значений при использовании методов replace(). Если вы используете одинарные кавычки, то JRE предполагает, что вы указываете символьную константу, и вы получите ошибку при компиляции программы.

Удаление символа из строки в Java

Вы можете удалить все вхождения символа из строки в Java, используя метод replace() для замены символа на пустую строку. В следующем примере кода удаляются все вхождения строчной буквы “a” из данной строки:

String str = "abc ABC 123 abc";
String strNew = str.replace("a", "");
Output
bc ABC 123 bc

Удаление пробелов из строки в Java

Вы можете удалить пробелы из строки в Java, используя метод replace() для замены пробелов на пустую строку. В следующем примере кода удаляются все пробелы из данной строки:

String str = "abc ABC 123 abc";
String strNew = str.replace(" ", "");
Output
abcABC123abc

Удаление подстроки из строки в Java

Вы можете удалить только первое вхождение символа или подстроки из строки в Java, используя метод replaceFirst() для замены символа или подстроки на пустую строку. В следующем примере кода удаляется первое вхождение “ab” из данной строки:

String str = "abc ABC 123 abc";
String strNew = str.replaceFirst("ab", "");
Output
c ABC 123 abc

Удаление всех строчных букв из строки в Java

Вы можете использовать регулярное выражение для удаления символов, соответствующих определенному образцу, из строки в Java, используя метод replace.All() для замены этих символов пустой строкой. В следующем примере кода удаляются все строчные буквы из заданной строки:

String str = "abc ABC 123 abc";
String strNew = str.replaceAll("([a-z])", "");
Output
ABC 123

Удаление последнего символа из строки в Java

Не существует конкретного метода для замены или удаления последнего символа из строки, но вы можете использовать метод String substring() для обрезки строки. В следующем примере кода удаляется последний символ из заданной строки:

String str = "abc ABC 123 abc";
String strNew = str.substring(0, str.length()-1);
Output
abc ABC 123 ab

Попробуйте сами

Приведенный ниже примерный файл определяет класс, который включает в себя все примеры методов, предоставленные в этой статье, и выводит результаты после вызова каждого метода для указанной строки. Вы можете использовать этот примерный код, чтобы попробовать его самостоятельно на разных строках, используя различные шаблоны сопоставления и значения замены.

Если у вас установлена Java, вы можете создать новый файл с названием JavaStringRemove.java и добавить следующий код в файл:

JavaStringRemove.java

public class JavaStringRemove {

	public static void main(String[] args) {
    	String str = "abc ABC 123 abc";

		// Удаление символа из строки в Java
		System.out.println("String after removing all the 'a's = "+str.replace("a", ""));

		// Удаление пробелов из строки в Java
		System.out.println("String after removing all the spaces = "+str.replace(" ", ""));

		// Удаление подстроки из строки в Java
		System.out.println("String after removing the first 'ab' substring = "+str.replaceFirst("ab", ""));

		// Удаление всех строчных букв из строки в Java
		System.out.println("String after removing all the lowercase letters = "+str.replaceAll("([a-z])", ""));

		// Удаление последнего символа из строки в Java
		System.out.println("String after removing the last character = "+str.substring(0, str.length()-1));
	}

}

Скомпилируйте и запустите программу:

  1. javac JavaStringRemove.java
  2. java JavaStringRemove

Вы получите следующий вывод:

Output
String after removing all the 'a's = bc ABC 123 bc String after removing all the spaces = abcABC123abc String after removing the first 'ab' substring = c ABC 123 abc String after removing all the lowercase letters = ABC 123 String after removing the last character = abc ABC 123 ab

Каждый метод в примерном классе JavaStringRemove работает с указанной строкой. Вывод показывает, что символы, указанные в каждом методе, были удалены из строки.

Заключение

В этой статье вы узнали различные способы удаления символов из строк в Java с использованием методов из класса String, включая replace(), replaceAll(), replaceFirst() и substring(). Продолжайте обучение с дополнительными учебниками по Java.

Source:
https://www.digitalocean.com/community/tutorials/java-remove-character-string