String 类 split 函数返回不明确的结果

2024-03-13

下面是2个代码

System.out.println(",,,,,".split(",").length);

and

System.out.println(",,,,, ".split(",").length);

对于第一个代码,它打印的结果是0对于第二个代码,它打印的结果是 6。

我的问题是为什么分裂无法识别","当我没有在末尾添加额外的空间但当我在末尾添加额外的空间时它能够识别它。

请注意我已经尝试过使用正则表达式“\\s*,\\s”但结果是一样的。


我没有这方面的文档参考,但根据我在测试中看到的经验String#split的问题是,如果没有实际的文本匹配,则数组中也不会返回零宽度匹配。因此以下返回一个空数组:

",,,,,".split(",")

但是,如果您在一系列逗号的末尾添加一个空格,然后执行相同的拆分,则将有一个匹配的空格。因此,数组返回所有匹配项,包括零宽度匹配项:

",,,,, ".split(",")

但是,因为逗号之间没有内容,所以我将您的真正要求解释为想要将每个单独的逗号分割成一个单独的结果。如果是这样,那么您可以使用环视进行拆分,如下所示:

String input = ",,,,,";
String[] parts = input.split("(?<=,)(?=,)");
for (String part : parts) {
    System.out.println(part);
}

这输出:

,
,
,
,
,

Demo http://rextester.com/JAXJM36042

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

String 类 split 函数返回不明确的结果 的相关文章

  • 如何通过 javaconfig 使用 SchedulerFactoryBean.schedulerContextAsMap

    我使用 Spring 4 0 并将项目从 xml 移至 java config 除了访问 Service scheduleService 带注释的类来自QuartzJobBean executeInternal 我必须让它工作的 xml 位
  • 在 Python 中解析 TCL 列表

    我需要在双括号上拆分以空格分隔的 TCL 列表 例如 OUTPUT 172 25 50 10 01 01 Ethernet 172 25 50 10 01 02 Ethernet Traffic Item 1 172 25 50 10 01
  • 动态选择端口号?

    在 Java 中 我需要获取端口号以在同一程序的多个实例之间进行通信 现在 我可以简单地选择一些固定的数字并使用它 但我想知道是否有一种方法可以动态选择端口号 这样我就不必打扰我的用户设置端口号 这是我的一个想法 其工作原理如下 有一个固定
  • preg_match_all 查询仅显示有问题的外部组

    我无法弄清楚如何只显示 preg 查询的外部组级别 我会给你一个例子 preg match all start end input matches 这个输入start1 start2 2end 1end产生这个输出start1 start2
  • HSQL - 识别打开连接的数量

    我正在使用嵌入式 HSQL 数据库服务器 有什么方法可以识别活动打开连接的数量吗 Yes SELECT COUNT FROM INFORMATION SCHEMA SYSTEM SESSIONS
  • 如何在 Spring 中禁用使用 @Component 注释创建 bean?

    我的项目中有一些用于重构逻辑的通用接口 它看起来大约是这样的 public interface RefactorAwareEntryPoint default boolean doRefactor if EventLogService wa
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • 从最终实体获取根证书和中间证书

    作为密码学的菜鸟 我每天都会偶然发现一些简单的事情 今天只是那些日子之一 我想用 bouncy castle 库验证 java 中的 smime 消息 我想我几乎已经弄清楚了 但此时的问题是 PKIXparameters 对象的构建 假设我
  • java.lang.IllegalStateException:提交响应后无法调用 sendRedirect()

    这两天我一直在尝试找出问题所在 我在这里读到我应该在代码中添加一个返回 我做到了 但我仍然得到 java lang IllegalStateException Cannot call sendRedirect after the respo
  • 在 junit 测试中获取 javax.lang.model.element.Element 类

    我想测试我的实用程序类 ElementUtils 但我不知道如何将类作为元素获取 在 AnnotationProcessors 中 我使用以下代码获取元素 Set
  • Eclipse Maven Spring 项目 - 错误

    I need help with an error which make me crazy I started to study Java EE and I am going through tutorial on youtube Ever
  • Java ResultSet 如何检查是否有结果

    结果集 http java sun com j2se 1 4 2 docs api java sql ResultSet html没有 hasNext 方法 我想检查 resultSet 是否有任何值 这是正确的方法吗 if resultS
  • 如何对不同的参数类型使用相同的java方法?

    我的问题 我有 2 个已定义的记录 创建对象请求 更新对象请求 必须通过实用方法进行验证 由于这两个对象具有相同的字段 因此可以对这两种类型应用相同的验证方法 现在我只是使用两种方法进行重载 但它很冗长 public record Crea
  • 尝试将 Web 服务部署到 TomEE 时出现“找不到...的 appInfo”

    我有一个非常简单的项目 用于培训目的 它是一个 RESTful Web 服务 我使用 js css 和 html 创建了一个客户端 我正在尝试将该服务部署到 TomEE 这是我尝试部署时遇到的错误 我在这里做错了什么 刚刚遇到这个问题 我曾
  • java for windows 中的文件图标叠加

    我正在尝试像 Tortoise SVN 或 Dropbox 一样在文件和文件夹上实现图标叠加 我在网上查了很多资料 但没有找到Java的解决方案 Can anyone help me with this 很抱歉确认您的担忧 但这无法在 Ja
  • 不接受任何内容也不返回任何内容的函数接口[重复]

    这个问题在这里已经有答案了 JDK中是否有一个标准的函数式接口 不接受也不返回任何内容 我找不到一个 像下面这样 FunctionalInterface interface Action void execute 可运行怎么样 Functi
  • 专门针对 JSP 的测试驱动开发

    在理解 TDD 到底是什么之前 我就已经开始编写测试驱动的代码了 在没有实现的情况下调用函数和类可以帮助我以更快 更有效的方式理解和构建我的应用程序 所以我非常习惯编写代码 gt 编译它 gt 看到它失败 gt 通过构建其实现来修复它的过程
  • 干净构建 Java 命令行

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐

  • Xcode 4“等待进程‘Appname’启动

    我安装了 Xcode 4 但现在无法运行我的 iPhone 项目之一 Copyright 2004 Free Software Foundation Inc GDB is free software covered by the GNU G
  • 为什么java中BitSet的内部数据存储为long[]而不是int[]?

    在java中 内部数据BitSet https docs oracle com javase 8 docs api java util BitSet html存储为long 而不是int 我想知道为什么 jdk中的代码如下 The inte
  • 如何在 Firefox 中动态调整 iFrame 大小?

    我使用本页所述的解决方案根据内容调整 iFrame 的大小 根据内容调整 iframe 的大小 https stackoverflow com questions 153152 resizing an iframe based on con
  • 使用不同版本的 Android 支持库的解决方法

    这是参考 build gradle 文件中出现的警告消息 所有 com android support 库必须使用完全相同的版本 规范 混合版本可能会导致运行时崩溃 我很清楚这一点 并在我自己的代码 构建中使用相同的版本 然而 当涉及到某些
  • 更改 bash 中的单词分隔符

    我想更改 bash 或 readline 用于分隔单词的分隔符 具体来说我想做 不分隔单词 这样如果我有文本 ls some file 我按Alt Backspace它删除整个some file文本 而不仅仅取决于 字符 这也会导致删除长标
  • 密码通知脚本在剩余天数内引发“类型不匹配”错误

    我可以让每个人单独工作 但我无法让他们一起工作 登录脚本使用strArg 调用HTA文件时 HTA文件会生成一个密码窗口 当登录脚本运行 HTA 文件时 第 31 行和第 106 行出现错误 我知道问题出在strArg 我想不明白 应在到期
  • 控制器映射中的 ASP.NET MVC 枚举参数

    ASP NET MVC 为控制器方法提供了简单的模板 例如Details 并且可以有类似的东西 public ActionResult Details int id do something 可以通过以下方式访问 http localhos
  • 如何向 JTable java 插入/删除列

    我不知道该怎么办 我正在创建一个应用程序 我需要使用表格 所以我使用 JTable 但我对此有很多问题 它似乎有效 但是当我尝试删除列时 该列消失了 仅在 GUI 中 但所有信息仍然存在 列数也不会改变 我搜索并尝试了很多不同的代码 但没有
  • MySQL 中的“unsigned”是什么意思以及何时使用它?

    MySQL 中的 unsigned 是什么意思 什么时候应该使用它 MySQL http dev mysql com doc refman 5 7 en numeric type attributes html says 所有整数类型都可以
  • 更改别名目标 python

    我想使用 python 更改别名的目标 我是否必须下载一些外部库才能执行此操作 我尝试了一下别名 但无法找到任何无需用户输入即可编辑它们的方法 我使用的是Mac Python 2 6 据我所知 使用 PyObjC 应该可以访问 Mac 的基
  • 上传时获取原始文件创建日期

    我们有一个将文件上传到我们网站的流程 对于用户来说 能够看到这些文件的创建时间变得很重要 我正在寻找一种从 HttpPostedFile 中提取原始创建日期的方法 如果有人对我有想法 我会非常感激 此时我有点困惑 您无权访问在客户端上创建文
  • Autoscaling 组中的 UpdatePolicy 对于 AWS CloudFormation 更新无法正常工作

    我正在使用 AWS CloudFormation 启动我的服务器堆栈 我创建了一个 LaunchConfig 然后创建了使用上述 launchconfig 的 AutoScaling 组 我已经设置了 CreationPolicy 它等待来
  • jQuery 的 .val() 在 Facebox 中不起作用

    我正在使用 Facebox http defunkt github com facebox http defunkt github com facebox 在我的网站之一上 我还在网站上广泛使用 jQuery 我的问题是 val 函数似乎无
  • 使用脚本桥创建 iTunes 播放列表

    我正在尝试使用可可脚本桥创建一个新的用户播放列表 但似乎无法让它工作 到目前为止我有 iTunesApplication iTunes SBApplication applicationWithBundleIdentifier com ap
  • 在Linux中,属于内核数据段的物理内存页是否可交换?

    我这样问是因为我记得属于内核的所有物理页面都固定在内存中 因此是不可交换的 就像这里所说的 http www cse psu edu axs53 spring01 linux memory ppt http www cse psu edu
  • 在散景刻度标签中插入换行符

    我想在 Bokeh 中创建多行格式的刻度标签 在常规 Python 中以这种方式格式化很简单 例如 n format Category Percentage 将打印 Percentage 在我的代码中 我这样做是为了创建绘图数据 ds Or
  • 如何正确停止运行 dotnet core Web 应用程序?

    In Visual Studio 2017 and 2019 on Windows I run dotnet watch run in the Package Manager Console It launched kestrel for
  • 如何在 React-Redux 中使用 Mocha、Chai 和 Enzyme 测试方法和回调

    我必须为一个编写单元测试用例PlayerList容器和Player成分 为分支和 props 编写测试用例是可以的 但是如何测试组件的方法及其内部的逻辑 我的代码覆盖率不完整 因为这些方法未经测试 设想 父组件传递对其方法的引用onSele
  • Zend_Validate_Between 奇怪的错误消息

    我正在尝试Zend Validate Between class 我是这样设置的 scoreBetweenValidator new Zend Validate Between 3 3 true 因此验证器应该只接受 3 到 3 之间的值
  • String 类 split 函数返回不明确的结果

    下面是2个代码 System out println split length and System out println split length 对于第一个代码 它打印的结果是0对于第二个代码 它打印的结果是 6 我的问题是为什么分裂