说我有一个字符串,说String stringy = "<Monkey><Banana><Raffle/>"
和另一个字符串String stringier = <Cool stuff to add/>
如何stringier
在 的关闭>
和<Banana>
打开<
之间插入<Raffle/>
?我也不能使用字符串的索引,因为stringy
在 the 之前可能有更多或更少的字符,<Raffle/>
并且可能永远不会是同一件事。有任何想法吗?
说我有一个字符串,说String stringy = "<Monkey><Banana><Raffle/>"
和另一个字符串String stringier = <Cool stuff to add/>
如何stringier
在 的关闭>
和<Banana>
打开<
之间插入<Raffle/>
?我也不能使用字符串的索引,因为stringy
在 the 之前可能有更多或更少的字符,<Raffle/>
并且可能永远不会是同一件事。有任何想法吗?
您只是在寻找查找和替换吗?如果没有,你能扩展你的问题吗?
stringy = stringy.replace("<Banana><Raffle/>", "<Banana>"+ stringier +"<Raffle/>")
这可以是另一种选择:
stringy = stringy.substring(0, stringy.indexOf("<Banana>") + "<Banana>".length())
+ stringier
+ stringy.substring(stringy.indexOf("<Banana>") + "<Banana>".length());
您可以使用 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");
}
在查看其他答案之后,替换可能比子字符串的东西更好。
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/>