'How to replace first occurrence of string in Java
I want to replace first occurrence of String in the following.
String test = "see Comments, this is for some test, help us"
**If test contains the input as follows it should not replace
- See Comments, (with space at the end)
- See comments,
- See Comments**
I want to get the output as follows,
Output: this is for some test, help us
Thanks in advance,
Solution 1:[1]
You can use replaceFirst(String regex, String replacement)
method of String.
Solution 2:[2]
You should use already tested and well documented libraries in favor of writing your own code.
org.apache.commons.lang3.
StringUtils.replaceOnce("coast-to-coast", "coast", "") = "-to-coast"
Javadoc
There's even a version that is case insensitive (which is good).
Maven
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.7</version>
</dependency>
Credits
My answer is an augmentation of: https://stackoverflow.com/a/10861856/714112
Solution 3:[3]
You can use following statement to replace first occurrence of literal string with another literal string:
String result = input.replaceFirst(Pattern.quote(search), Matcher.quoteReplacement(replace));
However, this does a lot of work in the background which would not be needed with a dedicated function for replacing literal strings.
Solution 4:[4]
Use substring(int beginIndex)
:
String test = "see Comments, this is for some test, help us";
String newString = test.substring(test.indexOf(",") + 2);
System.out.println(newString);
OUTPUT:
this is for some test, help us
Solution 5:[5]
You can use following method.
public static String replaceFirstOccurrenceOfString(String inputString, String stringToReplace,
String stringToReplaceWith) {
int length = stringToReplace.length();
int inputLength = inputString.length();
int startingIndexofTheStringToReplace = inputString.indexOf(stringToReplace);
String finalString = inputString.substring(0, startingIndexofTheStringToReplace) + stringToReplaceWith
+ inputString.substring(startingIndexofTheStringToReplace + length, inputLength);
return finalString;
}
Following link provide examples for replacing first occurrence of string using with and without regular expressions.
Solution 6:[6]
Use String replaceFirst to swap the first instance of the delimiter to something unique:
String input = "this=that=theother"
String[] arr = input.replaceFirst("=", "==").split('==',-1);
String key = arr[0];
String value = arr[1];
System.out.println(key + " = " + value);
Solution 7:[7]
You can also use this method in node.js;
public static String replaceFirstOccurance(String str, String chr, String replacement){
String[] temp = str.split(chr, 2);
return temp[0] + replacement + temp[1];
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | |
Solution 2 | |
Solution 3 | Socowi |
Solution 4 | Jared Burrows |
Solution 5 | |
Solution 6 | Thomas Boyles |
Solution 7 |