首页 > Java > java教程 > 正文

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

Susan Sarandon
发布: 2024-11-11 13:49:02
原创
981 人浏览过

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板