在C#中是否有'string.Insert()'的Java等价或自定义方法

时间:2013-10-04 11:19:14

标签: java string insert equivalent

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

string.Insert(int startIndex, string value)

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

6 个答案:

答案 0 :(得分:3)

试试这个

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

答案 1 :(得分:3)

使用StringBuilder:

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

答案 2 :(得分:0)

等效可能是

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

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

答案 3 :(得分:0)

您可以使用String concat或String Buffer

以下是使用字符串缓冲区

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

OP: I am busy right now.

答案 4 :(得分:0)

没有直接的方法,但您可以将字符串转换为Stringbuffer,然后调用其insert方法。

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

<强>输出

12345hi

答案 5 :(得分:0)

您可以尝试使用正则表达式执行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
}