在 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中文网其他相关文章!