Java StringBuilder replace()方法及示例

来源:这里教程网 时间:2026-02-17 21:14:13 作者:

Java StringBuilder replace()方法及示例

StringBuilder类的 replace(int start, int end, String str) 方法用于用指定的String中的字符替换这个序列的子串中的字符。子串从指定的索引start开始,延伸到索引end-1的字符,如果没有这样的字符,则延伸到序列的末端。首先,子串中的字符被删除,然后插入作为参数传递的字符串,以代替这些字符。

语法

public StringBuilder replace?(int start, int end, String str)

参数:

这个方法接受三个参数。

    start – 整数类型的值,指的是起始索引。end – 整数类型的值,指的是结束索引。str - 字符串类型的值,指的是将替换之前内容的字符串。

返回:

该方法在成功替换字符后返回StringBuilder对象。

异常:

如果start是负数,大于length(),或者大于end,则出现StringIndexOutOfBoundsException。

下面的程序说明了java.lang.StringBuilder.replace()方法:

例1 :

// Java program to demonstrate// the replace() Method.  class GFG {    public static void main(String[] args)    {          // create a StringBuilder object        // with a String pass as parameter        StringBuilder str            = new StringBuilder("WelcomeGeeks");          // print string        System.out.println("String = "                           + str.toString());          // replace Character from index 1 to 7 by "e are "        StringBuilder strReturn = str.replace(1, 7, "e are ");          // print string        System.out.println("After Replace() String = "                           + strReturn.toString());    }}

输出

String = WelcomeGeeksAfter Replace() String = We are Geeks

例2 :

// Java program to demonstrate// the replace() Method.  class GFG {    public static void main(String[] args)    {          // create a StringBuilder object        // with a String pass as parameter        StringBuilder str            = new StringBuilder("Tony Stark will die");          // print string        System.out.println("String = "                           + str.toString());          // replace Character from index 15 to 16 by " not "        StringBuilder strReturn = str.replace(15, 16, " not ");          // print string        System.out.println("After Replace() String = "                           + strReturn.toString());    }}

输出

String = Tony Stark will dieAfter Replace() String = Tony Stark will not die

例3: 当传递负的指数时。

// Java program to demonstrate// Exception thrown by the replace() Method.  class GFG {    public static void main(String[] args)    {          // create a StringBuilder object        // with a String pass as parameter        StringBuilder str            = new StringBuilder("Tony Stark");          try {            // replace Character from index -15 to 16 by "Captain America"            StringBuilder strReturn = str.replace(-15, 16, "Captain America");        }        catch (Exception e) {              e.printStackTrace();        }    }}

输出

java.lang.StringIndexOutOfBoundsException: String index out of range: -15    at java.lang.AbstractStringBuilder.replace(AbstractStringBuilder.java:851)    at java.lang.StringBuilder.replace(StringBuilder.java:262)    at GFG.main(File.java:17)

例4: 当传递的起始索引大于结束索引时。

// Java program to demonstrate// Exception thrown by the replace() Method.  class GFG {    public static void main(String[] args)    {          // create a StringBuilder object        // with a String pass as parameter        StringBuilder str            = new StringBuilder("Tony Stark");          try {            // replace Character from index 5 to 3 by "Captain America"            StringBuilder strReturn = str.replace(5, 3, "Captain America");        }        catch (Exception e) {              e.printStackTrace();        }    }}

输出

java.lang.StringIndexOutOfBoundsException: start > end    at java.lang.AbstractStringBuilder.replace(AbstractStringBuilder.java:855)    at java.lang.StringBuilder.replace(StringBuilder.java:262)    at GFG.main(File.java:17)

参考资料:
https://docs.oracle.com/javase/10/docs/api/java/lang/StringBuilder.html#replace(int, int, java.lang.String)。

相关推荐