黑马程序员技术交流社区

标题: 关于“.” [打印本页]

作者: dengjia1778    时间: 2015-3-23 22:48
标题: 关于“.”
本帖最后由 dengjia1778 于 2015-3-24 20:48 编辑

在编写  “一个可以获取文件扩展名的函数”这个题目时
      
  看网上写的是       //获取文件扩展名
    public static String getPath(String path)
                {

                if( path==null||path.lastIndexOf(".")==-1)
                        return null;
                   else{
                        
                           return path.substring(path.lastIndexOf(".")+1);
                   }
                }
                而我自己写的是
public static String getPath(String path)
                {

                        if( path==null||path.lastIndexOf(".")==-1)
                                return null;
                         else
                           {
                                 //用“.”好将文件名分割成不同的极端存储在数组中
                                 String[] arr=path.split("\\.");
                                 //返回数组长度
                                 int length=arr.length ;
                                 //返回扩展名
                                return arr[length];
                           }
                }

问题:我自己在用"."来切割文件名的时候一定要用“\\.”才能运行成功,网上说是需要转义,但是path.lastIndexOf(".")这个为什么不需要将“.”转义就能运行成功呢?
作者: Etby    时间: 2015-3-24 02:16
split 是依据正则解析的 会分析字符串 而.lastIndexOf 只是按照字符串解析 找到位置+1就是跳过 . 号了 然后substring 从跳过的地方之后开始截取




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2