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

String[] fileNameSplit = file.getName().split(".");
String fileType = fileNameSplit[(fileNameSplit.length - 1)];


它总是在-1处抛出ArrayOutOfBoundsExecption,表明fileNameSplit为0。当我取出-1时,它仍然说ArrayOutOfBoundsException,但现在为0,表示它为空。

我究竟做错了什么?

最佳答案

这是因为.是接受“任何字符”的meta-character。它将字符串中的每个字符视为定界符,“吃掉”它的全部内容。

像这样逃逸圆点:

String[] fileNameSplit = file.getName().split("\\.");


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

String[] fileNameSplit = file.getName().split("[.]");

09-12 23:36