Java String replaceFirst() Example


A quick guide on how to replace the first occurrence of the given pattern with given string value. Examples on Java String replaceFirst() method.

Java String replaceFirst()

1. Overview

In this String API Methods series, You'll learn replaceFirst() method of String class.

Replaces the first substring of this string that matches the given regular expression with the given replacement.

This method is mostly useful when you want to do the changes only for the first found value and not for all values. But, replace() method replaces for all matches with the given string. You must be careful and choose the right one for your use-case.

Java String replaceFirst() Example

2. Java String replaceFirst() Syntax


public String replaceFirst​(String regex, String replacement)


regex - the regular expression to which this string is to be matched
replacement - the string to be substituted for the first match

3. Java String replaceFirst() Example

The below program string has a "BOSS" word two times but we want to replace only the first match with the "Boss" word. Let us run the program and see how it produces the output.

Java String replaceFirst() Example
package com.javaprogramto.strings;

public class StringReplaceFirstExample {

    public static void main(String[] args) {

        String str = "Hello BOSS, Welcome to JavaProgramTo.com SUPER-BOSS";

        String replacedString = str.replaceFirst("BOSS", "Boss");

        System.out.println("Output of replaceFirst() method : " + replacedString);



Output of replaceFirst() method : Hello Boss, Welcome to JavaProgramTo.com SUPER-BOSS

Yes, your guess is right. It just replaced the first match case and not the other matches.

4. Java String replaceFirst() Example with Special Characters

Next, let us work with special characters such as $ or / symbols whether works will replaceFirst() method.

In the below code, trying to replace the "$$" with Dollars word.

package com.javaprogramto.strings;

public class StringReplaceFirstSpecialCharsExample {

    public static void main(String[] args) {

        String str = "How many $$ you have ? Do you have valid $$ amount?";

        String replacedString = str.replaceFirst("$$", "Dollars");

        System.out.println("replaceFirst() special chars output : " + replacedString);



replaceFirst() special chars output : How many $$ you have ? Do you have valid $$ amount?Dollars

This method does not work well with special characters.

So, You need to use the double backward slashes "\\$\\$" then it makes the right pattern.

  String replacedString = str.replaceFirst("\\$\\$", "Dollars");

Now, recompile and run the program and observe the output.


Now it is on the right track. 

replaceFirst() special chars output : How many Dollars you have ? Do you have valid $$ amount?

Note that backslashes (\) and dollar signs ($) in the replacement string may cause the results to be different than if it were being treated as a literal replacement string; see Matcher.replaceFirst(java.lang.String). Use Matcher.quoteReplacement(java.lang.String) to suppress the special meaning of these characters, if desired.

5. replaceFirst() Internal Code

Internally, it calls the Pattern class methods. So, You can directly use the below code.

    public String replaceFirst(String regex, String replacement) {
        return Pattern.compile(regex).matcher(this).replaceFirst(replacement);

6. PatternSyntaxException with replaceFirst()

if the regular expression's syntax is invalid then it will throw runtime exception saying "PatternSyntaxException".

package com.javaprogramto.strings;

public class StringReplaceFirstPatternSyntaxException {

    public static void main(String[] args) {

        String str = "Pattern invalid program";

        String replacedString = str.replaceFirst("[invalid}}", "invalid is not accecpted");

        System.out.println("replaceFirst() special chars output : " + replacedString);



Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 9
at java.base/java.util.regex.Pattern.error(Pattern.java:2027)
at java.base/java.util.regex.Pattern.clazz(Pattern.java:2695)
at java.base/java.util.regex.Pattern.sequence(Pattern.java:2138)
at java.base/java.util.regex.Pattern.expr(Pattern.java:2068)
at java.base/java.util.regex.Pattern.compile(Pattern.java:1782)
at java.base/java.util.regex.Pattern.<init>(Pattern.java:1428)
at java.base/java.util.regex.Pattern.compile(Pattern.java:1068)
at java.base/java.lang.String.replaceFirst(String.java:2081)
at com.javaprogramto.strings.StringReplaceFirstPatternSyntaxException.main(StringReplaceFirstPatternSyntaxException.java:9)

7. Conclusion

In this article, you've seen how to replace the first match for a given pattern with a given value.

replaceFirst() is different than replace() and replaceAll() methods of string. You can find these from String series.

As usual, all programs are over GitHub.




About Us

Author: Venkatesh - I love to learn and share the technical stuff.

accumulo,1,ActiveMQ,2,Adsense,1,API,37,ArrayList,18,Arrays,24,Bean Creation,3,Bean Scopes,1,BiConsumer,1,Blogger Tips,1,Books,1,C Programming,1,Collection,8,Collections,37,Collector,1,Command Line,1,Comparator,1,Compile Errors,1,Configurations,7,Constants,1,Control Statements,8,Conversions,6,Core Java,149,Corona India,1,Create,2,CSS,1,Date,3,Date Time API,38,Dictionary,1,Difference,2,Download,1,Eclipse,3,Efficiently,1,Error,1,Errors,1,Exceptions,8,Fast,1,Files,17,Float,1,Font,1,Form,1,Freshers,1,Function,3,Functional Interface,2,Garbage Collector,1,Generics,4,Git,9,Grant,1,Grep,1,HashMap,2,HomeBrew,2,HTML,2,HttpClient,2,Immutable,1,Installation,1,Interview Questions,6,Iterate,2,Jackson API,3,Java,32,Java 10,1,Java 11,6,Java 12,5,Java 13,2,Java 14,2,Java 8,128,Java 8 Difference,2,Java 8 Stream Conversions,4,java 8 Stream Examples,12,Java 9,1,Java Conversions,14,Java Design Patterns,1,Java Files,1,Java Program,3,Java Programs,114,Java Spark,1,java.lang,4,java.util. function,1,JavaScript,1,jQuery,1,Kotlin,11,Kotlin Conversions,6,Kotlin Programs,10,Lambda,2,lang,29,Leap Year,1,live updates,1,LocalDate,1,Logging,1,Mac OS,3,Math,1,Matrix,6,Maven,1,Method References,1,Mockito,1,MongoDB,3,New Features,1,Operations,1,Optional,6,Oracle,5,Oracle 18C,1,Partition,1,Patterns,1,Programs,1,Property,1,Python,2,Quarkus,1,Read,1,Real Time,1,Recursion,2,Remove,2,Rest API,1,Schedules,1,Serialization,1,Servlet,2,Sort,1,Sorting Techniques,8,Spring,2,Spring Boot,23,Spring Email,1,Spring MVC,1,Streams,31,String,61,String Programs,28,String Revese,1,StringBuilder,1,Swing,1,System,1,Tags,1,Threads,11,Tomcat,1,Tomcat 8,1,Troubleshoot,26,Unix,3,Updates,3,util,5,While Loop,1,
JavaProgramTo.com: Java String replaceFirst() Example
Java String replaceFirst() Example
A quick guide on how to replace the first occurrence of the given pattern with given string value. Examples on Java String replaceFirst() method.
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content