[英]String Split in Java Giving Unexpected Results
我有一系列具有以下格式的字符串:“動物 || 類型 || 區域 ||”。
在 Java 中,我試圖拆分字符串,這樣我就可以只使用第一部分。 我在網上閱讀的所有內容都說拆分字符串:
String animalString = "animal || type || area"
String animalArray[] = animalString.split("||")
System.out.println("result = " + Arrays.toString(animalArray));
但是,當我拆分字符串時,它不僅僅基於“||”進行拆分除法而是拆分每個字母:
result = [a, n, i, m, a, l, , |, |, , t, y, p, e, , |, |, , a, r, e, a, , |, |]
當我向 split 方法添加分隔符時,它會分隔字符串的第一部分,因此無效。
如何拆分具有上述格式的字符串,以便我可以在數組中獲取三個單詞本身而不僅僅是字母?
你需要雙重逃避他們。 一次用於String
一次用於regex
。 \\
轉義斜杠,以便它可以作為\|
傳遞給正則表達式逃脫了|
.
\\s*
允許在||
前后有 0 個或多個空格
String animalString = "animal || type || area";
String animalArray[] = animalString.split("\\s*\\|\\|\\s*");
System.out.println("result = " + Arrays.toString(animalArray));
印刷
result = [animal, type, area]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.