Java:将字符添加到字符串中的特定位置(性能)

zak*_*zak 2 java string algorithm arraylist

我正在寻找将字符添加到字符串中特定位置的有效方法。

我的例子:

package test;

public class Test {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {

      //Creating A String Object that Hold "Hello"  
      String  seq = new String("Hello");
      System.out.println(seq);/*printing Hello*/

      /*putting tha char _ in the 3 Position :  He_llo */
      seq = seq.substring(0, 2)+ "_" + seq.substring(2, seq.length());
      System.out.println(seq);/*it prints He_llo*/

  }
Run Code Online (Sandbox Code Playgroud)

这只是一个简单的函数,但在我的真实程序中,我正在处理:

  • 1- 长度为 400-600 个字符的字符串。
  • 2- 我会多次调用以在字符串中间添加 _ 字符。

在我看来,使用 String Object 或 StringBuilder Object 并不是最好的 Object,因为seq = seq.substring(0, 2)+ "_" + seq.substring(2, seq.length()); 在最坏的情况下,此操作需要 O(n)。

我的问题:

什么是适合此目的的收藏品?

我认为使用字符对象列表,因此插入只需要 O(1) ,但我不确定。

你能给我一些见解吗?

谢谢你。

小智 6

在这种情况下,我将使用StringBuilder :)

String yourString = "Hello";
    
StringBuilder sb = new StringBuilder(yourString);
sb.insert(2, '_');
    
System.out.println(sb.toString());
Run Code Online (Sandbox Code Playgroud)

输出是:He_llo

编辑:用 StringBuilder 替换 StringBuffer