Java split()一个由你要拆分的String组成的String?

Aba*_*aab 3 java regex string split

当我编译并运行此代码时:

class StringTest {
    public static void main(String[] args) {
        System.out.println("Begin Test");

        String letters = "AAAAAAA"
        String[] broken = letters.split("A");
        for(int i = 0; i < broken.length; i++)
            System.out.println("Item " + i + ": " + broken[i]);

        System.out.println("End Test");
    }
}
Run Code Online (Sandbox Code Playgroud)

控制台的输出是:

Begin Test
End Test
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么会split()这样吗?我在这里看到了一些类似的其他问题,但是没有完全理解为什么在拆分完全由你正在使用的字符组成的字符串时没有输出regex.为什么java会以这种方式处理字符串?

Lou*_*man 12

String.split丢弃尾随空字符串.例如,"foo,bar,,".split(",")分裂成{"foo", "bar"}.你所看到的是一个完全由分隔符组成的字符串,所以所有空的分裂都是"尾随"并被丢弃.

如果你使用的话,你可能会得到所有那些空字符串letters.split("A", -1).或者,除非你要求,否则番石榴 Splitter不会做那样的事:Splitter.on('A').split(letters).