Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java String.replaceFirst() that takes a "starting from" argument

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!

like image 251
Slavko Avatar asked Feb 24 '10 21:02

Slavko


1 Answers

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.

like image 148
Chinmay Kanchi Avatar answered Sep 26 '22 20:09

Chinmay Kanchi