首頁  >  文章  >  Java  >  如何在 Java 中按空格分割字串,同時保留引用的子字串?

如何在 Java 中按空格分割字串,同時保留引用的子字串?

Susan Sarandon
Susan Sarandon原創
2024-11-11 13:49:02959瀏覽

How to Split a String on Spaces While Preserving Quoted Substrings in Java?

在Java 中按空格分割字串,保留帶引號的子字串

按空格分割字串可能很簡單,但在引用時會變得更加複雜子字串需要被視為單一標記。讓我們探討一下如何在 Java 中實現這一目標。

問題陳述:

考慮到帶引號的子字串保留為一個單元,我們如何在空格上拆分以下字串?

Location "Welcome to india" Bangalore Channai "IT city" Mysore

所需的輸出應儲存在陣列清單中,保留引用的內容子字串:

[Location, "Welcome to india", Bangalore, Channai, "IT city", Mysore]

解:

透過使用正規表示式,我們可以定義一個模式來匹配非空格字元的子字串(“ 1S") 或引號的子字串(""(. ?)“”)。此模式還允許在匹配後面使用可選的空白字元(“s”)。

String str = "Location \"Welcome  to india\" Bangalore " +
             "Channai \"IT city\"  Mysore";

List<String> list = new ArrayList<>();
Matcher m = Pattern.compile("([^\"]\S*|\".+?\")\s*").matcher(str);
while (m.find())
    list.add(m.group(1)); // Add .replace("\"", "") to remove surrounding quotes.

System.out.println(list);

在此解決方案中:

  • 該模式被編譯並用於匹配字串中的標記。
  • 符合的標記將會加入到陣列清單中。
  • 可選刪除將標記新增至清單後,可以透過使用.replace(""", "") 來實現周圍的引號。

輸出:

[Location, "Welcome  to india", Bangalore, Channai, "IT city", Mysore]

  1. "

以上是如何在 Java 中按空格分割字串,同時保留引用的子字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn