- Удалить или заменить подстроку в Java
- 1. Строка replace() метод
- 2. Использование Apache Commons Lang
- Как удалить часть строки java
- Удалить или заменить часть строки в Java
- 2. String API
- 3. StringBuilder API
- 4. StringUtils класс
- 5. Замена точных слов
- 6. Заключение
- Remove Substring From String in Java
- replace() Method to Remove Substring in Java
- StringBuffer.replace() Method to Remove Character From String in Java
- replaceAll() Method to Remove Substring From String in Java
- Related Article — Java String
Удалить или заменить подстроку в 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, нашей политикой, условиями авторского права и другими условиями. Читайте наши Политика конфиденциальности. Понятно
Как удалить часть строки java
Метод replace поможет удалить все вхождения подстроки, а метод replaceFirst только первое вхождение.
Так как строки в Java неизменяемы, то любое удаление части строки сводится к созданию новой строки на основе старой, в которой будет отсутствовать удаляемая подстрока :
String str = "10 20 30 10 20 30"; String newStr = str.replace("10 ", ""); System.out.println(newStr); // => 20 30 20 30 str = "10 20 30 10 20 30"; newStr = str.replaceFirst("10 ", ""); System.out.println(newStr); // => 20 30 10 20 30
Удалить или заменить часть строки в Java
В этом руководстве мы рассмотрим различные способы удаления или замены частиString в Java.
Мы рассмотрим удаление и / или замену подстроки с помощью APIString, затем с помощью APIStringBuilder и, наконец, с помощью классаStringUtils библиотеки Apache Commons.
В качестве бонусаwe’ll also look into replacing an exact word using the String API and the Apache Commons RegExUtils class.
2. String API
Один из самых простых и понятных методов замены подстроки — использоватьreplace, replaceAll orreplaceFirst из aString class.
Методreplace() принимает два аргумента — целевой и замещающий текст:
String master = "Hello World example!"; String target = "example"; String replacement = "Java"; String processed = master.replace(target, replacement); assertTrue(processed.contains(replacement)); assertFalse(processed.contains(target));
Приведенный выше фрагмент даст такой вывод:
Если для выбора цели требуется регулярное выражение, то следует выбрать методreplaceAll() илиreplaceFirst(). Как следует из их названия,replaceAll() will заменяет каждое совпадающее вхождение, аreplaceFirst() заменяет первое совпадающее вхождение:
String master2 = "Welcome to example, Hello World example"; String regexTarget = "(example)$"; String processed2 = master2.replaceAll(regexTarget, replacement); assertTrue(processed2.endsWith("Java"));
Welcome to example, Hello World Java
Это связано с тем, что регулярное выражение, представленное какregexTarget, будет соответствовать только последнему вхождениюexample. In all examples given above, we can use an empty replacement and it’ll effectively remove a target from a master.
3. StringBuilder API
Мы также можем управлять текстом в Java, используя классStringBuilder. . Здесь используются два метода:delete() иreplace().
Мы можем построить экземплярStringBuilder из существующегоString, а затем использовать упомянутые методы для выполнения манипуляции сString по желанию:
String master = "Hello World example!"; String target = "example"; String replacement = "Java"; int startIndex = master.indexOf(target); int stopIndex = startIndex + target.length(); StringBuilder builder = new StringBuilder(master);
Теперь мы можем удалитьtarget с помощьюdelete():
builder.delete(startIndex, stopIndex); assertFalse(builder.toString().contains(target));
Мы также можем использоватьreplace() для обновления мастера:
builder.replace(startIndex, stopIndex, replacement); assertTrue(builder.toString().contains(replacement));
Одно очевидное различие между использованиемStringBuilder иString API состоит в том, что мы сами должны получить начальный и конечный индексtargetString.
4. StringUtils класс
Еще один метод, который мы рассмотрим, — это библиотека Apache Commons.
Для начала добавим в наш проект необходимую зависимость:
org.apache.commons commons-lang3 3.8.1
Последнюю версию библиотеки можно найтиhere.
В классеStringUtils есть методы для замены подстрокиString:
String master = "Hello World example!"; String target = "example"; String replacement = "Java"; String processed = StringUtils.replace(master, target, replacement); assertTrue(processed.contains(replacement));
Существует перегруженный вариантreplace(), который принимает целочисленный параметрmax, который определяет количество заменяемых экземпляров. We can also use the replaceIgnoreCase() if case-sensitivity is not a concern:
String master2 = "Hello World example!"; String target2 = "example"; String processed2 = StringUtils.replaceIgnoreCase(master2, target2, replacement); assertFalse(processed2.contains(target));
5. Замена точных слов
В этом последнем примереwe’ll learn how to replace an exact word inside a String.
Самый простой способ выполнить эту замену -using a regular expression с границами слов.
The word boundary regular expression is . Заключение искомого слова в это регулярное выражение будет соответствовать только точным вхождениям.
Во-первых, давайте посмотрим, как использовать это регулярное выражение с String 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");
"A truck is not the same as a carriage, and some planes can carry cars inside them!"
Only the exact word will be replaced. Обратите внимание наbackward slash always needs to be escaped при работе с регулярными выражениями в Java.
Альтернативный способ сделать эту замену — использовать классRegExUtils из библиотеки Apache Commons, который можно добавить в качестве зависимости, как мы видели в предыдущем разделе:
String regexTarget = "\\bcar\\b"; String exactWordReplaced = RegExUtils.replaceAll(sentence, regexTarget, "truck");
Хотя оба метода дадут один и тот же результат, решение о том, какой из них следует использовать, будет зависеть от нашего конкретного сценария.
6. Заключение
В заключение мы рассмотрели несколько способов удаления и замены подстроки в Java. Лучший способ применить все еще в значительной степени зависит от текущей ситуации и контекста.
Как обычно, доступен полный исходный кодover on Github.
Remove Substring From String in Java
- replace() Method to Remove Substring in Java
- StringBuffer.replace() Method to Remove Character From String in Java
- 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.