杰瑞科技汇

Java字符串如何指定位置插入字符?

在 Java 字符串指定位置插入字符或子串

在 Java 中,没有直接的方法可以在字符串的指定位置插入字符或子串,因为字符串是不可变的,但可以通过以下几种方法实现:

Java字符串如何指定位置插入字符?-图1
(图片来源网络,侵删)

方法1:使用 StringBuilder 或 StringBuffer

public class StringInsertExample {
    public static void main(String[] args) {
        String original = "HelloWorld";
        int position = 5; // 在位置5插入
        StringBuilder sb = new StringBuilder(original);
        sb.insert(position, " ");
        String result = sb.toString();
        System.out.println(result); // 输出: Hello World
    }
}

方法2:使用字符串拼接

public class StringInsertExample {
    public static void main(String[] args) {
        String original = "HelloWorld";
        int position = 5;
        String toInsert = " ";
        String result = original.substring(0, position) + 
                       toInsert + 
                       original.substring(position);
        System.out.println(result); // 输出: Hello World
    }
}

方法3:使用 Apache Commons Lang 库

如果你可以使用第三方库,Apache Commons Lang 提供了 StringUtils.overlay() 方法:

import org.apache.commons.lang3.StringUtils;
public class StringInsertExample {
    public static void main(String[] args) {
        String original = "HelloWorld";
        int position = 5;
        String toInsert = " ";
        String result = StringUtils.overlay(original, toInsert, position, position);
        System.out.println(result); // 输出: Hello World
    }
}

方法4:插入多个字符或复杂字符串

public class StringInsertExample {
    public static void main(String[] args) {
        String original = "The quick brown fox";
        int position = 9;
        String toInsert = "fast ";
        String result = original.substring(0, position) + 
                       toInsert + 
                       original.substring(position);
        System.out.println(result); // 输出: The quick fast brown fox
    }
}

注意事项

  1. 字符串索引从0开始
  2. 插入位置不能超过字符串长度(否则会抛出异常)
  3. 对于频繁的字符串操作,使用 StringBuilderStringBuffer 更高效
  4. 如果需要线程安全,使用 StringBuffer;否则使用 StringBuilder

选择哪种方法取决于你的具体需求和项目环境,对于简单的插入操作,方法1或方法2就足够了。

Java字符串如何指定位置插入字符?-图2
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇