如果我运行以下代码:
"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
答案 0 :(得分:2)
来自String.split文档:
此方法的工作方式就像通过调用双参数split方法一样 给定的表达式和一个零的限制参数。 尾随空 因此,字符串不包含在结果数组中。
如果你想保留尾随的空字符串,那么你可以像这样使用String.split(String, int):
String str = "testx";
String[] values = str.split("x", -1);
输出:
{"test", ""}