【问题标题】:Is there a Java equivalent or custom method for 'string.Insert()' in C#C# 中是否有“string.Insert()”的 Java 等效或自定义方法
【发布时间】:2013-10-04 11:19:13
【问题描述】:

我正在尝试从 C# 移植一些代码,但我遇到了

string.Insert(int startIndex, string value)

而且似乎没有明显的 Java 等价物。谁能帮我解决这个问题以及我能做些什么来解决它。提前谢谢你。

【问题讨论】:

  • string.insert() 在c#中做了什么?
  • 返回一个新的字符串,在这个实例中指定的索引位置插入了一个指定的字符串。

标签: java string insert equivalent


【解决方案1】:

试试这个

str = str.substring(0, startIndex) + value + str.substring(startIndex)

【讨论】:

    【解决方案2】:

    使用 StringBuilder:

    String string = "test";
    String string2 = new StringBuilder(string).insert(index, value).toString();
    

    【讨论】:

    • 在大多数情况下,使用StringBuilder 确实比字符串连接更受欢迎,因为它更有效。 StringBuffer 类具有非常相似的行为,但自 Java 1.5 起已被弃用
    【解决方案3】:

    等价的可能是

    String.format("Original %s string", "thing to insert");
    

    它没有指定实际的索引,而是使用格式字符串。在某些情况下哪个更好。否则你必须使用String.substring()

    【讨论】:

      【解决方案4】:

      没有直接的方法,但是你可以将字符串转换成Stringbuffer,然后调用它的insert方法。

      String x="12345";
      StringBuffer b=new StringBuffer(x);
      b.insert(5, "hi");
      System.out.println(b);
      

      输出

      12345hi
      

      【讨论】:

        【解决方案5】:

        你可以使用 String concat 或 String Buffer

        这是一个使用字符串缓冲区

        的例子
           StringBuffer s1 = new StringBuffer("I am right now."); 
          // Then, use the insert method, that is: 
            s1.insert(3, "busy"); 
        

        操作: I am busy right now.

        【讨论】:

          【解决方案6】:

          您可以尝试使用正则表达式执行ReplaceAll,这有点笨拙,但可以完成工作:

          public static void main(String args[]) {
              String original = "abcdefg";
              int position = 3;
              String inserted = "123";
          
              String newString = original.replaceFirst("^(.{" + position + "})", "$1" + inserted);
          
              System.out.println(newString); // abc123defg
          }
          

          【讨论】:

            猜你喜欢
            • 2010-11-14
            • 2013-06-03
            • 1970-01-01
            • 1970-01-01
            • 2011-03-20
            • 2014-04-06
            • 1970-01-01
            • 2012-02-03
            相关资源
            最近更新 更多