A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© dengjia1778 初级黑马   /  2015-3-23 22:48  /  1047 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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(".")这个为什么不需要将“.”转义就能运行成功呢?

1 个回复

正序浏览
split 是依据正则解析的 会分析字符串 而.lastIndexOf 只是按照字符串解析 找到位置+1就是跳过 . 号了 然后substring 从跳过的地方之后开始截取
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马