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

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

Изучите несколько способов удаления и замены подразрядки на Java.

1. Обзор

В этом учебнике мы будем рассматривать различные средства, которые мы можем удалить или заменить часть Струнные на Яве.

Мы изучить удаление и/или замену подразрядки с помощью Струнные API, затем с помощью Стрингбилдер API и, наконец, с помощью СтрингУтилс класса библиотеки Apache Commons.

В качестве бонуса, Мы также будем смотреть на замену точное слово, используя API строки и apache Commons RegExUtils класс .

2. Строка API

Одним из самых простых и простых методов замены подразрядки является использование заменить, заменитьВсе или заменитьПервый из Струнный класс.

заменить () метод принимает два аргумента – целевой и замены текста:

String master = "Hello World Baeldung!"; String target = "Baeldung"; String replacement = "Java"; String processed = master.replace(target, replacement); assertTrue(processed.contains(replacement)); assertFalse(processed.contains(target));

Вышеупомянутый фрагмент даст этот вывод:

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

String master2 = "Welcome to Baeldung, Hello World Baeldung"; String regexTarget = "(Baeldung)$"; String processed2 = master2.replaceAll(regexTarget, replacement); assertTrue(processed2.endsWith("Java"));

Значение обработано2 будет:

Welcome to Baeldung, Hello World Java

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

3. Api StringBuilder

Мы также можем манипулировать текстом на Java, используя Стрингбилдер класс . Два метода здесь удалить () и заменить () .

Мы можем построить экземпляр Стрингбилдер из существующего Струнные а затем использовать упомянутые методы для выполнения Струнные манипуляции по желанию:

String master = "Hello World Baeldung!"; String target = "Baeldung"; String replacement = "Java"; int startIndex = master.indexOf(target); int stopIndex = startIndex + target.length(); StringBuilder builder = new StringBuilder(master);

Теперь мы можем удалить целевые с удалить () :

builder.delete(startIndex, stopIndex); assertFalse(builder.toString().contains(target));

Мы также можем использовать заменить () обновить мастера:

builder.replace(startIndex, stopIndex, replacement); assertTrue(builder.toString().contains(replacement));

Одно явное различие между использованием Стрингбилдер и Струнные API заключается в том, что мы должны получить стартовый и стоп-индекс целевые Струнные себя.

4. Класс StringUtils

Другим методом, который мы рассмотрим, является библиотека Apache Commons.

Во-первых, давайте добавим необходимую зависимость к нашему проекту:

 org.apache.commons commons-lang3 3.11 

Последнюю версию библиотеки можно найти здесь.

СтрингУтилс класс имеет методы замены подразрядки Струнные :

String master = "Hello World Baeldung!"; String target = "Baeldung"; String replacement = "Java"; String processed = StringUtils.replace(master, target, replacement); assertTrue(processed.contains(replacement));

Существует перегруженный вариант заменить () что занимает более интегративную макс параметр, который определяет количество возникновений для замены. Мы также можем использовать заменитьИгнорКейс () если чувствительность к делу не является проблемой :

String master2 = "Hello World Baeldung!"; String target2 = "baeldung"; String processed2 = StringUtils.replaceIgnoreCase(master2, target2, replacement); assertFalse(processed2.contains(target));

5. Замена точных слов

В этом последнем примере Мы научимся заменять точное слово внутри Струнные .

Простой способ выполнить эту замену использует регулярное выражение с границами слов.

Регулярное выражение границы слова Зб . Включение нужного слова в это обычное выражение будет соответствовать только точным явлениям.

Во-первых, давайте посмотрим, как использовать это обычное выражение с API строки:

String sentence = "A car is not the same as a carriage, and some planes can carry cars inside them!"; String regexTarget = "\\bcar\\b"; String exactWordReplaced = sentence.replaceAll(regexTarget, "truck");

exactWordReplaced строка содержит:

"A truck is not the same as a carriage, and some planes can carry cars inside them!"

Только точное слово будет заменено. Обратите назад черту всегда необходимо избежать при работе с регулярными выражениями на Java.

Альтернативным способом сделать эту замену является использование RegExUtils класс из библиотеки Apache Commons, который может быть добавлен в качестве зависимости, как мы видели в предыдущем разделе:

String regexTarget = "\\bcar\\b"; String exactWordReplaced = RegExUtils.replaceAll(sentence, regexTarget, "truck");

Хотя оба метода будут приносить один и тот же результат, решение о том, какой из них следует использовать, будет зависеть от нашего конкретного сценария.

6. Заключение

В заключение мы изучили несколько способов удаления и замены подразрядки на Java. Наилучший метод применения по-прежнему во многом зависит от текущей ситуации и контекста.

Как обычно, полный исходный код доступен более на Github .

Читайте ещё по теме:

Источник

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

В этом посте будет обсуждаться, как удалить подстроку из строки, а также заменить подстроку строки другой строкой в Java.

1. Строка replace() метод

Здесь идея состоит в том, чтобы извлечь подстроку, которую необходимо удалить или заменить, и вызвать метод replace() метод исходной строки путем передачи подстроки и замены.

результат:

Java 8
Java (SDK) 8

2. Использование Apache Commons Lang

Мы также можем использовать Apache Commons StringUtils remove() метод. Логика остается той же, что и в приведенном выше решении.

результат:

Java 8
Java (SDK) 8

Это все об удалении или замене подстроки в Java.

Средний рейтинг 5 /5. Подсчет голосов: 4

Голосов пока нет! Будьте первым, кто оценит этот пост.

Сожалеем, что этот пост не оказался для вас полезным!

Расскажите, как мы можем улучшить этот пост?

Спасибо за чтение.

Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.

Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂

Этот веб-сайт использует файлы cookie. Используя этот сайт, вы соглашаетесь с использованием файлов cookie, нашей политикой, условиями авторского права и другими условиями. Читайте наши Политика конфиденциальности. Понятно

Источник

Поиск, получение, удаление подстроки в String

Методы indexOf, lastIndexOf позволяют искать строки в строках. Есть 4 вида таких методов:

Метод indexOf ищет в нашей строке указанную строку. Он может искать ее с начала строки или начиная с какого-то номера (второй метод). Если строка найдена – метод возвращает номер ее первого символа, если не найдена — возвращает -1

int indexOf(String str)
String s text-green">Good news everyone!"; int index = s.indexOf("ne");
int indexOf(String str, int from)
String s text-green">ws everyone!"; int index = s.indexOf("ne", 7);

Метод lastIndexOf ищет указанную строку в нашей строке с конца! Он может искать ее с самого конца строки или начиная с какого-то номера (второй метод). Если строка найдена – метод возвращает номер ее первого символа, если не найдена — возвращает -1.

int lastIndexOf(String str)
String s text-green">Good news everyone!"; int index = s.lastIndexOf("ne");
int lastIndexOf(String str, int from)
String s text-green">Good news everyone!"; int index = s.lastIndexOf("ne", 15);

9) Как заменить часть строки на другую?

Для этого есть три метода.

Метод replace заменяет все вхождения определенного символа на другой.

Метод replaceAll заменяет все вхождения одной подстроки на другую.

Метод replaceFirst заменяет первое вхождение переданной подстроки на заданную подстроку.

String replace(char oldChar, char newChar)
String s ; String s2 = s.replace ('o', 'a');
String replaceAll(String regex, String replacement)
String s ; String s2 = s.replaceAll("ne", "_");
String replaceFirst(String regex, String replacement)
String s ; String s2 = s.replaceFirst("ne", "_");

Но тут нужно быть аккуратным. В двух последних методах (replaceAll&replaceFirst) в качестве строки, которую мы ищем, передается не просто строка, а регулярное выражение. Но об этом я расскажу позднее.

Источник

Remove Substring From String in Java

Remove Substring From String in Java

  1. replace() Method to Remove Substring in Java
  2. StringBuffer.replace() Method to Remove Character From String in Java
  3. replaceAll() Method to Remove Substring From String in Java

In this tutorial, we will learn how to remove a substring from any given string in Java.

replace() Method to Remove Substring in Java

The first and most commonly used method to remove/replace any substring is the replace() method of Java String class.

string.replace(char oldChar, char newChar) 

The first parameter is the substring to be replaced, and the second parameter is the new substring to replace the first parameter.

import java.util.List; import java.text.*;  public class SimpleTesting   public static void main(String[] args)   String originalstring = "This is Simple Testing";  String replace = originalstring.replace('i', 'a');  System.out.println("Original String: " + originalstring);  System.out.println("Modified String with Replacement: " +  originalstring.replace('i', 'a'););  > > 
Original String: This is Simple Testing Modified String with Replacement: Thas as Sample Testang 

StringBuffer.replace() Method to Remove Character From String in Java

This method could remove/replace any substring in the given index range. Java StringBuffer is similar to String , but is mutable.

The syntax of StringBuffer.replace() method is,

StringBuffer replace(int start,  int end,  String str) 

start and end are the beginning and ending index of the specified range. start is inclusive, and end is exclusive; therefore, the actual range is [start, end-1] .

str is the string that replaces the content in the above-specified range.

import java.util.List; import java.text.*;  public class SimpleTesting   public static void main(String[] args)   StringBuffer originalString =  new StringBuffer("Simple Testing");  System.out.println  ("Original String: " + originalString);  originalString.replace( 5 ,6 ,"y");  System.out.println  ("Modified String: " + originalString);  > > 
Original String: Simple Testing Modified String: Simply Testing 

replaceAll() Method to Remove Substring From String in Java

Another similar method to replace() method is to use replaceAll() method of Java String class.

String replaceAll(String regex, String replace) 

regex is the pattern of the regular expression.

replace is the string to replace the existing one.

import java.util.List; import java.text.*;  public class SimpleTesting   public static void main(String[] args)   String originalstring =  "This is Simple Testing Code";  System.out.println  ("Original String: " + originalstring);  System.out.println  ("Modified String: " + originalstring.replaceAll("Code", ""));  > > 
Original String: This is Simple Testing Code Modified String: This is Simple Testing 

A more enhanced point to use the replaceAll() method is to use a pattern of the regular expression to remove substrings that match the pattern all at once.

import java.util.List; import java.text.*;  public class SimpleTesting   public static void main(String[] args)   String originalstring =  "This Test is from Simple Testing Code to Test function ";  System.out.println  ("Original String: " + originalstring);  System.out.println  ("Modified String: " + originalstring.replaceAll("Tes.*?\\b", ""));  > > 
Original String: This Test is from Simple Testing Code to Test function Modified String: This is from Simple Code to function 

Both replace() and replaceAll() methods replace all occurrences. The difference between them is that the replaceAll() method uses a regular expression pattern.

Related Article — Java String

Источник

Читайте также:  Https shop sibverk ru index php
Оцените статью