String#split方法混乱

2023-12-29

我尝试了这段代码:

String str =",,,,,";
String str2=",,,,, ";
System.out.println(str.split(",").length);
System.out.println(str2.split(",").length);

输出是:

0
6

唯一的区别是str值为,,,,, (without space) and str2值为,,,,, (with space)

有人可以解释一下吗?


因为在String#split()方法,尾随空字符串将不包含在数组结果中。

String str =",,,,,";
String str2=",,,,, ";

As str.split(",")将应该给你[, , , , ,], 返回[]相反,因为你有一个尾随空字符串 there.

不同于str2.split(",")它会给你

[, , , , , ]
          ^ //note the whitespace element 

你可以尝试

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

这仍然会给你输出:6,即[, , , , , ]因为之后空白,您所拥有的只是尾随空字符串(因此不包含在数组结果中)


Note:您可以通过指定限制来保留尾随空字符串:

System.out.println(str.split(",", -1).length);
                                   ^ limit

Output :6

检查String#split 文档 http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split更多细节

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

String#split方法混乱 的相关文章

随机推荐

  • 如何为使用“create-react-app CLI”创建的现有React应用程序生成bundle.js

    这个问题与this https stackoverflow com questions 46564182 how to convert a react app to phonegap app所以帖子 我在用着create react app
  • BindingExpression 的源发生更改时发出通知?

    测试场景 我有一个带有 DependencyProperty A 的控件 我有一个带有属性 A 的 ViewModel 我使用 OneWayToSource 绑定将其绑定到控件的 A 属性 绑定由控件显式更新 我在运行时切换了绑定的 Vie
  • UICollectionView 的每个部分独立滚动?

    是否可以使用UICollectionView构建一个布局 其中每个section可以独立滚动吗 例如 假设有 20 行图像 其中每行都可以独立水平滚动以在屏幕外显示更多图像 在此过程中无需滚动其他行 并且整个视图可以垂直滚动以显示更多行 我
  • 使用until 参数调用Facebook News feed (me/home),每次连续调用返回limit/2

    这是我的代码的精简版本 没有初始化调用 一切都很完美 除了我每次连续调用都会传递一个until值转化为FB api 返回极限 2 我曾尝试使用不同的 Facebook 帐户在两次通话之间等待长达 1 分钟 但这对解决问题没有帮助 我检查了n
  • 如何从c++运行c++代码?

    如果我有一些 C 代码作为 C 程序中的字符串量 数据 我可以执行该字符串的内容吗 如在 C 中使用 CodeDOM 或 perl python 等中存在的 eval 函数 简短回答 你不能 稍微长一点的答案 c 没有反射 而且一般都是编译
  • Sublime Text 构建系统与选项

    我有一个项目的各种 shell 构建脚本 并且希望创建一个集中式构建系统 其中包含允许运行哪个 shell 脚本的选项 例如 用户按 Cmd B 然后用户会看到以下选项 1 shellscript1 sh2 shellscript2 sh3
  • 创建 XML 的最快且最有效的方法

    在 Java 中创建 XML 文档最快 最有效的方法是什么 那里有大量的库 woodstox xom xstream 只是想知道是否有人有任何输入 我应该采用代码生成方法 因为 xml 模式众所周知 吗 或者运行时的反射方法 编辑附加信息
  • 是否可以分层标记 matplotlib (pyplot) 条形图?

    我已经成功使用 matplotlib pyplot 绘制了以下条形图 该图来自聚合的 PANDAS DataFrame 如下所示 请注意 条形图中的每个条对应于mean柱子 另请注意 这些值是not零 但 PANDAS 输出0 and 0当
  • Python 3.6+ 格式化解包字典中缺少键的字符串

    在Python3 4中你可以做以下事情 class MyDict dict def missing self key return s key 然后是这样的 d MyDict d first name Richard print I am
  • Castle ActiveRecord 表名称冲突

    当你在 NHibernate 中遇到像 User 这样的保留字时 你只需在有问题的文本周围加上单引号 nHibernate 就会用方括号将文本括起来以进行查询 我的问题是如何使用 Castle ActiveRecord 做同样的事情 实际上
  • 发送包含自定义数据的 SNMP 陷阱

    客户要求我们将 SNMP 陷阱发送到他们的 Nagios 服务器 而不是电子邮件警报 昨天之前我对 SNMP 唯一的了解是它听起来像一个缩写词 所以请原谅 并纠正我 我对它可能有的任何误解 陷阱中需要发送的唯一信息与我们向客户端发出警报的事
  • 在 EC2 实例上启用 OpenSSL

    我目前正在尝试在我的 ec2 服务器上安装 openssl 以便我可以摆脱这个特定的错误 stream socket client SSL operation failed with code 1 OpenSSL Error message
  • 从第一个重定向到 HTTPS 的请求中删除 Azure Web App 上的响应服务器标头

    我正在尝试从 Azure Web 应用程序 使用 ASP Net core 应用程序 删除响应服务器标头 经过多次尝试改变网络配置并使用中间件删除应用程序代码中的标头 微软不会放弃并将响应标头设置为服务器 Microsoft IIS 10
  • 如何在 sqlproj (SQL Server 2012) 脚本中使用 msbuild 属性

    我刚刚将现有的 SQL Server 2008 r2 dbproj 升级到 SQL Server 2012 sqlproj 使用 SQL Server Data Tools 以前 我能够在项目中定义 SQLCMD 变量 然后通过添加以下元素
  • 查找列表元素的所有组合,包括重复元素

    我正在 python 中寻找一种算法 该算法将返回数字列表的所有可能组合 允许重复元素并加起来达到某个数字 例如 给定目标数字 7 以及列表 2 3 4 我希望能够生成以下组合 2 2 3 2 3 2 3 2 2 3 4 4 3 我了解如何
  • Ruby/Rails - 如何将秒转换为时间?

    我需要执行以下转换 0 gt 12 00AM 1800 gt 12 30AM 3600 gt 01 00AM 82800 gt 11 00PM 84600 gt 11 30PM 我想出了这个 0 84600 step 1800 n puts
  • lwuit.html.CSSEngine.applyStyleToUIElement 的 NullPointerException(来源未知)

    我正在执行以下 LinkedIn 登录过程 但不幸的是 在加载 LinkedIn 登录窗口时 授予 Yokeapp 访问您的 LinkedIn 帐户的权限 它没有显示任何内容并引发错误 我在 Eclipse pulsar 中使用 LWuit
  • 如何在 SwiftUI 中使视图的大小与另一个视图的大小相同

    我正在尝试重新创建 Twitter iOS 应用程序的一部分来学习 SwiftUI 并且想知道如何动态地将一个视图的宽度更改为另一个视图的宽度 就我而言 使下划线与文本视图的宽度相同 我附上了一张屏幕截图 以尝试更好地解释我所指的内容 任何
  • 在 Asp.Net 中使用 Ironpython 时 ExtensionAttribute 的引用不明确

    当启动使用程序集的 Asp Net 站点时 我收到以下错误 该程序集又利用 dlr 和 Iron Python 进行脚本编写 BC30560 ExtensionAttribute 在命名空间 System Runtime CompilerS
  • String#split方法混乱

    我尝试了这段代码 String str String str2 System out println str split length System out println str2 split length 输出是 0 6 唯一的区别是s