Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
874 views
in Technique[技术] by (71.8m points)

regex - 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!

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...