Java String.replaceFirst() that takes a "starting from" argument
java, regex, replace, string
Solution
What about something like this:
String replaceFirstFrom(String str, int from, String regex, String replacement)
{
String prefix = str.substring(0, from);
String rest = str.substring(from);
rest = rest.replaceFirst(regex, replacement);
return prefix+rest;
}
// or
s.substring(0,start) + s.substring(start).replaceFirst(search, replace);
just 1 line of code ... not a whole method.
Problem
I need to replace a word in a string looking like "duh duh something else duh". I only need to replace the second "duh", but the first and the last ones need to stay untouched, so replace() and replaceFirst() don't work. Is there a method like replaceFirst(String regex, String replacement, int offset) that would replace the first occurrence of replacement starting from offset, or maybe you'd recommend some other way of solving this? Thanks!