split的问题(String regex)

Aqu*_*ake 1 java regex string split exception

嗨,我遇到下面的代码问题(文件属于File类):

String[] fileNameSplit = file.getName().split(".");
String fileType = fileNameSplit[(fileNameSplit.length - 1)];
Run Code Online (Sandbox Code Playgroud)

它始终抛出一个ArrayOutOfBoundsExecption为-1,表明fileNameSplit为0.当我取出-1时,它仍然表示ArrayOutOfBoundsException但现在为0,表示它是空的.

我究竟做错了什么?

das*_*ght 5

这是因为.是一个接受"任何角色" 的字符.它将字符串的每个字符视为分隔符,"吞噬"其整个内容.

像这样逃避点:

String[] fileNameSplit = file.getName().split("\\.");
Run Code Online (Sandbox Code Playgroud)

或使用字符类,如下所示:

String[] fileNameSplit = file.getName().split("[.]");
Run Code Online (Sandbox Code Playgroud)