在Java中,当字符串文本是" a#b#c"时,分割后的数组("#")是[" a", " b"," c"],长度为3;
当文本是" ### 34;时,数组变为[" a"]。为什么我没有获得一系列[" a",""]?
它的诀窍是什么?
答案 0 :(得分:3)
你可能想要
s.split("#", -1);
来自2-arg表格的文档:
如果n是非正数,那么模式将被应用尽可能多次,并且数组可以具有任何长度。如果n为零,那么模式将被应用尽可能多次,数组可以具有任何长度,并且尾随空字符串将被丢弃。
答案 1 :(得分:2)
这就是split
功能的工作方式。它位于documentation:
此方法的工作方式就像调用带有给定表达式和limit参数为零的双参数split方法一样。 结尾的空字符串因此不包含在结果数组中。