在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);
在此解決方案中:
輸出:
[Location, "Welcome to india", Bangalore, Channai, "IT city", Mysore]
以上是如何在 Java 中按空格分割字串,同時保留引用的子字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!