linux与windows下的.(点)分隔符操作——获得文件名而不获得扩展名

linux与windows下的.(点)分隔符操作分隔符操作——获得文件名而不获得扩展名


只能说linux和windows可真的是一对冤家阿

今天在对一个文件名进行分割的时候出现了分割失败

比如一个文件名 1.txt,我只想获得前面的部分,而扩展名为不需要获得,就是一个简单的字符串分割


代码如下


File dir = new File(pathfilenew);
File[] list = dir.listFiles();
File file = list[list.length-1];
String string = (Integer.parseInt(file.getName().split("/.")[0])+1) +".txt";
失败信息如下


Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0


Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
其意思就是说,数据越界!


这是一个奇怪的问题,当我们不知道linux和windows的区别的时候很难下手

就是说这些代码在windows下运行是完全可行的

但是在liunx下就会错误,因为在split里面的参数应该是 \\.  而不是 /. 了

在linux和windows下,他们的正斜杠与反斜杠是相反的,所以他们在转义某些符号的时候也是反着的

当然还有其他在分割时需要转义的符号,也应该和这个类似的

如对符号  |  的转义等


爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情Blog Img