Java 字符串分割不起作用

2023-11-29

Java 专家,

请查看下面的 split 命令代码,并让我知道为什么最后两个空值未被捕获。

String test = "1,O1,,,,0.0000,0.0000,,";
String[] splittest = test.split(",");
System.out.println("length -"+splittest.length);
for (String string : splittest) {
    System.out.println("value"+string);
}

我得到的结果

length -7
value1
valueO1
value
value
value
value0.0000
value0.0000

令人惊讶的是,长度是 7,而它应该是 9,而且您也可以看到 0.0000 之后的值,即最后两个空值不会出现。现在让我们说如果我改变字符串测试 “1,O1,0.0000,0.0000,0,0”

String test = "1,O1,,,,0.0000,0.0000,0,0";
String[] splittest = test.split(",");
System.out.println("length -"+splittest.length);
for (String string : splittest) {
    System.out.println("value"+string);
}

我得到正确的

length -9
value1
valueO1
value
value
value
value0.0000
value0.0000
value0
value0

我不认为我做错了。这是一个错误吗?JAVA版本-jdk1.6.0_31


它的行为如中指定的javadoc:

此方法的工作方式类似于使用给定表达式和零限制参数调用双参数 split 方法。因此,尾随空字符串不包含在结果数组中。

如果你想保留结尾的空白字符串,你可以使用2 参数分割方法具有负限制:

String[] splittest = test.split(",", -1);

如果限制为非正数,则该模式将被应用尽可能多次,并且数组可以具有任意长度。

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

Java 字符串分割不起作用 的相关文章

随机推荐

  • 使用 FFMPEG 通过 QuickTime 对可读的电影进行编码

    我正在尝试使用以下命令对图像序列进行编码 ffmpeg exe i d png f mp4 vcodec h264 test mp4 但是 QuickTime 无法打开该文件 或者有时会播放黑色电影 而该电影在 VLC 播放器中播放效果很好
  • 类继承:从继承类的属性重新创建基类项(或实例)

    I have a class A that is inherited from B A 作为我想从 B 修改的一些只读属性 用 new 隐藏这些属性不是一个合适的选择 因为基类有一些使用其自己的属性的函数 不能使用 override 关键字
  • CoffeeScript 模块的模式[重复]

    这个问题在这里已经有答案了 在审查的同时Github 上的 CoffeeScript 源代码 我注意到大多数 如果不是全部 模块定义如下 function call this 这种模式看起来像是将整个模块包装在一个匿名函数中并调用自身 这种
  • 为什么 C++ 中 const 方法不覆盖非常量方法?

    考虑这个简单的程序 class Shape public virtual double getArea 0 class Rectangle public Shape int width int height public Rectangle
  • 是否可以更改 Hive 分区表上列的元数据?

    这是我之前提出的问题的延伸 是否可以更改 HIVE 中的分区元数据 我们正在探索更改表上的元数据的想法 而不是对 SELECT 语句中的数据执行 CAST 操作 更改 MySQL 元存储中的元数据非常简单 但是 是否可以将该元数据更改应用于
  • 注册我的广播接收器以在应用程序启动时运行?

    我想在启动应用程序时运行一些代码 因此当用户打开任何应用程序时必须通知我的广播接收器 有什么办法可以做到吗 不 抱歉 应用程序启动时或活动启动时都不会广播 Intent
  • 从 C# 调用 PHP Web 服务

    我目前正在尝试用 C 调用 PHP Web 服务 我一直在尝试在互联网上找到的数十种解决方案 但没有运气 并且没有一个与我有相同的问题 我对PHP不熟悉 我可以从我的 C 成功调用authenticate get string auth i
  • 如何注入EPartService

    我正在开发 e4 应用程序 我想在 Part 和 Handler 之外注入 EPartService 当我注入 EPartService 时 我会得到空指针错误 public class DisplayRuntimePart Inject
  • 更改 Java 中的当前工作目录?

    如何从 Java 程序中更改当前工作目录 我能找到的有关该问题的所有内容都表明您根本无法做到这一点 但我不敢相信事实确实如此 我有一段代码 它使用硬编码的相对文件路径从通常启动的目录中打开一个文件 我只是希望能够在不同的 Java 程序中使
  • 如何解开双可选?

    如何解开返回的字符串 可选 可选 蓝色 var cityName String if let cityAnno annotation as MGLAnnotation cityName String stringInterpolationS
  • 标头是什么?

    什么是
  • 从 LibreOffice Basic 调用 C 共享库函数

    我试图从 LibreOffice Basic 调用 C 共享库函数 但当它到达 Declare 行时 我总是收到 基本运行时错误 未实现 这只是为了一件有趣的事情 但无法做到这一点让我很烦恼 Declare 语句如下所示 Declare F
  • Erlang 及其堆内存消耗

    我一直在 HP Proliant 服务器上运行高度并发的应用程序 该应用程序是我用 erlang 编写的文件系统索引器 它为在文件系统上找到的每个文件夹生成一个进程 并将所有文件路径记录在碎片化的 Mnesia 数据库中 数据库由disc
  • CSS 填充剩余容器宽度

    我有这个标题栏 我需要名为 middle 的元素来填充 div 中剩余的空白 我该怎么做 header background red middle background orange display inline block right b
  • 通过 App Delegate 在视图之间共享数据

    我有一个关于在视图之间共享数据的问题 希望它不是太基础 我在 appDelegate 中有一个 NSMutableArray 其中包含 Object1 Object2 Object3 创建新对象 并将其添加到数组中 时 我需要在下一个视图上
  • 从 ruby​​ 内部加密数据包,无需依赖 Knife

    目前要加密数据包 我必须这样做 system knife data bag from file TemporaryEncrypting enc file path secret file Secret Key Path 这不起作用 因为 K
  • 是否可以使 Page.IsPostBack 独立于 ASP.net 为真?

    如果检查用户的角色以确定他们是否可以访问某个页面 则仅将此检查放在一个页面中是否安全 if Page IsPostBack 是否有可能client引起Page IsPostBack true独立于 ASP net 也就是说 客户端 POST
  • 从我的计算机python中提取子网掩码

    亲爱的 我打算提取我的子网掩码 我使用了下面的代码 但子网掩码始终是 255 255 255 255 这是错误的 import socket Import socket module import netifaces def get ip
  • ActionLink 或 BeginForm 提交中不弹出 AjaxOptions.confirm

    这是新手 所以如果我在另一个答案中错过了这一点 请耐心等待 我尝试在 Ajax BeginForm 中使用 AjaxOptions 但它没有弹出 所以我转而在 ActionLink 中测试它 但仍然无法让它工作 对于 ajax beginf
  • Java 字符串分割不起作用

    Java 专家 请查看下面的 split 命令代码 并让我知道为什么最后两个空值未被捕获 String test 1 O1 0 0000 0 0000 String splittest test split System out print