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,表示它是空的.
我究竟做错了什么?
这是因为.是一个接受"任何角色" 的元字符.它将字符串的每个字符视为分隔符,"吞噬"其整个内容.
像这样逃避点:
String[] fileNameSplit = file.getName().split("\\.");
Run Code Online (Sandbox Code Playgroud)
或使用字符类,如下所示:
String[] fileNameSplit = file.getName().split("[.]");
Run Code Online (Sandbox Code Playgroud)