在另一个字符串中的某些字符之间插入字符串

时间:2013-06-28 17:05:47

标签: java

说我有一个字符串,说String stringy = "<Monkey><Banana><Raffle/>"

和另一个字符串String stringier = <Cool stuff to add/>

如何在stringier的结束><Banana>的开场<之间插入<Raffle/>?我也不能使用字符串的索引,因为stringy<Raffle/>之前可能有更多或更少的字符,并且可能永远不会是同一个字符。有什么想法吗?

4 个答案:

答案 0 :(得分:3)

您是否只是在寻找和替换?如果没有,你可以扩展你的问题吗?

stringy = stringy.replace("<Banana><Raffle/>", "<Banana>"+ stringier +"<Raffle/>")

答案 1 :(得分:0)

这可以是另一种选择:

stringy = stringy.substring(0, stringy.indexOf("<Banana>") + "<Banana>".length()) 
      + stringier 
      + stringy.substring(stringy.indexOf("<Banana>") + "<Banana>".length());

答案 2 :(得分:0)

您可以使用String.indexOf在另一个字符串中查找字符串的出现。所以,也许它看起来像这样。

    String stringy = "<Monkey><Banana><Raffle/>";
    String stringier = "<Cool stuff to add/>";

    String placeToAdd = "<Banana><Raffle/>";
    String addAfter = "<Banana>";
    int temp;

    temp = stringy.indexOf(placeToAdd);
    if(temp != -1){
        temp = temp+addAfter.length();

        stringy = stringy.substring(0, temp) + stringier + stringy.substring(temp+1, stringy.length());

        System.out.println(stringy);
    } else {
        System.out.println("Stringier \'" + stringier+"\" not found");
    }

在查看其他答案之后,替换可能是比子字符串更好的选择。

答案 3 :(得分:0)

Java字符串是不可变的,但StringBuilder不是。

public class StringyThingy {
  public static void main(String[] args) {
    StringBuilder stringy = new StringBuilder("<Monkey><Banana><Raffle/>");

    System.out.println(stringy);

    // there has to be a more elegant way to find the index, but I'm busy.
    stringy.insert(stringy.indexOf("Banana")+"Banana".length()+1,"<Cool stuff to add/>");

    System.out.println(stringy);
  }
}

// output
<Monkey><Banana><Raffle/>
<Monkey><Banana><Cool stuff to add/><Raffle/>