簡體   English   中英

Java 中的字符串拆分給出了意想不到的結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM