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

前端 未结 3 1675
盖世英雄少女心
盖世英雄少女心 2020-12-19 05:10

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 unt

3条回答
  •  旧巷少年郎
    2020-12-19 05:45

    Will something like this work?

      System.out.println(
         "1 duh 2 duh duh 3 duh"
         .replaceFirst("(duh.*?)duh", "$1bleh")
      ); // prints "1 duh 2 bleh duh 3 duh"
    

    If you just want to replace the second occurrence of a pattern in a string, you really don't need this "starting from" index calculation.

    As a bonus, if you want to replace every other duh (i.e. second, fourth, sixth, etc), then just invoke replaceAll instead of replaceFirst.

提交回复
热议问题