Java String#split出来数组长度不满足条件

比如:

str="a|b|||1||";
str.split("\\|");  

结果是 {a, b, "", "", 1}
和我预想的{a, b, "", "", 1, "", ""} 丢失了最后的两个 ""
请问有其他方式能获取到我预想的结果吗?


public class Test {
    public static void main(String[] args) {
        String str="a|b|||1||";
        //[a, b, , , 1, , ]
        System.out.println(Arrays.toString(str.split("\\|", -1)));
    }
}

转换一下不就好了吗,给字符串前后加字符。分割后,丢弃前后元素。