今天在做上传文件的时候,想用简单的办法得到文件名,于是就直接用
- String[] fileName = filePath.split("\\");
- System.out.println(fileName[fileName.length-1]);
这行代码去得文件名,开始觉得没有问题,可是一运行报了下面的错误
- java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
- \
一看就知道是分割符出现了问题,由于路径是前台传过来的,得到的都是"\"这样的格式,但是当你在类中自己写的时候,如果你写成
- String filePath = "c:\aaa\bbb\ccc\a.txt";
这种形式,编译器是要报错的,因为API中已经写的很清楚了
- 在 UNIX 系统上,此字段的值为 '/';在 Microsoft Windows 系统上,它为 '\\'。
所在写成
- String filePath = "c:\\aaa\\bbb\\ccc\\a.txt";
这样才是对的,因此
- java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
- \
这个问题的解决方式就是将"\\"写成""
- String[] fileName = filePath.split("\\\\");
- System.out.println(fileName[fileName.length-1]);
这样问题就解决了。问题虽小,但是值得注意!
本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/382461,如需转载请自行联系原作者