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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© itisdream 中级黑马   /  2014-6-25 08:31  /  995 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public static void main(String []args)
        {   
                File file = new File("abc.txt.java.txt.exe");
                if(!file.exists())
                {  
                        try
                        {
                                file.createNewFile();
                        }
                        catch (IOException e)
                        {e.printStackTrace();}
                }
        String fname = file.getName();   
        System.out.println(fname+":扩展名是:" +fname.substring(fname.lastIndexOf(".")+1,fname.length()));
        }
这最后一句,怎么取出来最后一个.之后的内容,有点看不懂。用endWith可以吗?

4 个回复

倒序浏览
createNewFile()  之后,file.getName();   返回值就是abc.txt.java.txt.exe了。
而substring(int begin, int end)方法能按照指定的起始点和结束点截取字符串,
想要截取“.exe”出来,那么就要找到最后一个“.”, lastIndexOf(String s)就是反向查找指定字符串在字符串中得位置,这样就从“.”后面的第一个字符开始截取,起始你最后一句的fname.length()是不需要的,直接截取到末尾就可出来扩展名了。
回复 使用道具 举报
这是基于流的么?
回复 使用道具 举报
1楼解释的太详细了,最后的那个使用fname.substring(fname.lastIndexOf(".")+1);
就完全可以达到效果了
回复 使用道具 举报
上班 没细看  坐等大神解答吧   收币 走起~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马