我是java的新手,我被困在一個函數中。在特殊字符前匹配字符串
我有一個字符串:"test lala idea<I want potatoes<"
。
我想數學"<"
之前的文本。
例如:
Str[0] = test lala idea
Str[1] = I want potatoes
我嘗試使用正則表達式,但everythig沒有奏效。 那麼如果有人有一個想法? 對不起我的英語技能。 謝謝。
我是java的新手,我被困在一個函數中。在特殊字符前匹配字符串
我有一個字符串:"test lala idea<I want potatoes<"
。
我想數學"<"
之前的文本。
例如:
Str[0] = test lala idea
Str[1] = I want potatoes
我嘗試使用正則表達式,但everythig沒有奏效。 那麼如果有人有一個想法? 對不起我的英語技能。 謝謝。
這是一個解決方案:
public static void main(String [] args)
{
String test = "test lala idea<I want potatoes<";
String piecesOfTest[] = test.split("<");
// if you need to split by a dot you need to use "\\."
System.out.println(piecesOfTest[0]);
// prints "test lala idea"
System.out.println(piecesOfTest[1]);
// prints "I want potatoes"
// Here goes a for loop in case you want to
// print the array position by position
}
在這種情況下分割以 「測試拉拉想法」(從beginnning推移,直到第一 '<')和節省內部piecesOfTest [0](這只是一個解釋)。然後將「我想要的土豆」(從第一個'<'實現第二個'<')和保存到塊測試1,所以數組的下一個位置。
如果你想在一個循環中,你可以按照下面的步驟打印此(這個循環應該放在.split(regex)
只運行後:
for(int i = 0; i < piecesOfTest.length; i++){
// 'i' works as an index, so it will be run for i=0, and i=1, due to the condition
// (run while) `i < piecesOfTest.length`, in this case piecesOfTest.length will be 2.
// but will never be run for i=2, due to (as I said) the condition of run while i < 2
System.out.println(piecesOfTest[i]);
}
只是爲了學習的緣故,爲ambigram_maker說,你也可以使用一個「每個」結構:
for (String element: piecesOfTest)
// for each loop, each position of the array is stored inside element
// So in the first loop piecesOfTest[0] will be stored inside element, for the
// second loop piecesOfTest[1] will be stored inside element, and so on
System.out.println(element);
}
謝謝你,但你有想法做一個循環打印在控制檯? @ederollora – user3476624
回答!代碼已更新 – ederollora
請標記我的答案爲正確的,以便我們可以關閉此問題。謝謝 – ederollora
感謝您編輯@ZouZou – user3476624
窺視'分裂()'函數在String類谷歌的Javadoc中 – Kon
什麼是正則表達式/代碼你。用過了嗎?它可能沒有在第二個<之前匹配所有文本的貪婪匹配。 –