1

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

string.Insert(int startIndex, string value)

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

4

6 回答 6

3

尝试这个

str = str.substring(0, startIndex) + value + str.substring(startIndex)
于 2013-10-04T11:22:41.107 回答
3

使用 StringBuilder:

String string = "test";
String string2 = new StringBuilder(string).insert(index, value).toString();
于 2013-10-04T11:24:26.527 回答
0

一个等价物可能是

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

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

于 2013-10-04T11:23:11.717 回答
0

您可以使用 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.

于 2013-10-04T11:23:12.730 回答
0

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

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

输出

12345hi
于 2013-10-04T11:25:59.833 回答
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
}
于 2013-10-04T11:40:23.180 回答