說我有一個字符串,說String stringy = "<Monkey><Banana><Raffle/>"
插入特定字符之間的字符串在另一個字符串
和另一個字符串String stringier = <Cool stuff to add/>
我如何可以插入stringier
的<Banana>
收盤>
和開口<Raffle/>
<
之間?我無法使用字符串的索引,因爲stringy
可能在<Raffle/>
之前的字符多或少,並且可能永遠不會是同一個字符。有任何想法嗎?
說我有一個字符串,說String stringy = "<Monkey><Banana><Raffle/>"
插入特定字符之間的字符串在另一個字符串
和另一個字符串String stringier = <Cool stuff to add/>
我如何可以插入stringier
的<Banana>
收盤>
和開口<Raffle/>
<
之間?我無法使用字符串的索引,因爲stringy
可能在<Raffle/>
之前的字符多或少,並且可能永遠不會是同一個字符。有任何想法嗎?
你只是在尋找和替換?如果不是,你可以擴展你的問題嗎?
stringy = stringy.replace("<Banana><Raffle/>", "<Banana>"+ stringier +"<Raffle/>")
附帶的標準API容易得多,
是的。這將工作。你可以看看學習[Regex](http://www.vogella.com/articles/JavaRegularExpressions/article.html),如果你進入高級查找和替換,這可能會有所幫助。我非常想擁有結婚正則表達式,我非常愛他們。 – screenmutt
我很熟悉他們,但我不是任何方式的專家,但我會多看看他們。感謝你的回答! – MrTunaDeluxe
這可能是另一種選擇:
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/>
這是XML還是您的自定義標記語言語法? – jlordo
如果這實際上是XML(在此時它在語法上不正確),那麼您可能希望將其視爲XML而不僅僅是字符串。 Java對XML有着豐富的支持。對於這樣一個簡單的用例來說,這可能是過度的,但是如果你的應用程序充滿了這樣的語句,那麼可能值得投入時間學習XML API的 – DaveH
@DaveHowes它是xml,但上面只是一個(窮人)簡化了我正在嘗試做的事情。我會研究API的,但screenmutt的答案現在肯定會做。 – MrTunaDeluxe