为什么java String.split忽略最后一个字符是基于最后一个字符拆分的

时间:2017-11-17 19:14:21

标签: java java-8 openjdk

如果我运行以下代码:

"testx".split("x")

期望我们会获得{"test", ""},而是java返回{"test"}

"xtest".split("x")会返回{"", "test"}。任何想法,为什么它表现得奇怪(或)我有错误的理解?

这是我的JDK&系统信息:

  

JRE:1.8.0_152-release-1024-b6 amd64

     

JVM:JetBrains s.r.o的OpenJDK 64位服务器VM

     

Linux 4.4.0-34-generic

1 个答案:

答案 0 :(得分:2)

来自String.split文档:

  

此方法的工作方式就像通过调用双参数split方法一样   给定的表达式和一个零的限制参数。 尾随空   因此,字符串不包含在结果数组中。

如果你想保留尾随的空字符串,那么你可以像这样使用String.split(String, int)

String str = "testx";
String[] values = str.split("x", -1);

输出:

{"test", ""}