黑马程序员技术交流社区

标题: 为什么会输出最后一个扩展名? [打印本页]

作者: itisdream    时间: 2014-6-25 08:31
标题: 为什么会输出最后一个扩展名?
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可以吗?
作者: Mr.Hao    时间: 2014-6-25 09:22
createNewFile()  之后,file.getName();   返回值就是abc.txt.java.txt.exe了。
而substring(int begin, int end)方法能按照指定的起始点和结束点截取字符串,
想要截取“.exe”出来,那么就要找到最后一个“.”, lastIndexOf(String s)就是反向查找指定字符串在字符串中得位置,这样就从“.”后面的第一个字符开始截取,起始你最后一句的fname.length()是不需要的,直接截取到末尾就可出来扩展名了。
作者: 18353666072    时间: 2014-6-25 10:06
这是基于流的么?
作者: 001可望成功    时间: 2014-6-25 11:12
1楼解释的太详细了,最后的那个使用fname.substring(fname.lastIndexOf(".")+1);
就完全可以达到效果了
作者: 冯云飞    时间: 2014-6-25 11:49
上班 没细看  坐等大神解答吧   收币 走起~




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