黑马程序员技术交流社区
标题:
为什么会输出最后一个扩展名?
[打印本页]
作者:
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