编写程序获取已知文件的扩展名. 注意: abc.txt的扩展名是txt, abc.java.txt的扩展名也是txt。
解决方案 »
- 跪求java类和对象怎么才能学好???
- eclipse中的build path加入一个jar,居然无法使用,为何??
- Java确实不可以捕捉windows桌面窗口时间吗???
- 怎样在JAVA应用程序中设置类路径
- 大家看看,这个网页上,当单击职位查询的地点时,就会出现一个像层的引导项目,感觉挺人性化的,可是怎么做的呢?大家谁知道
- 一个带JtextArea的JDialog。。和初学者共享。。
- 高分求解!!关于JAVA对象模型!!
- tomcat 配置问题
- 没想到配JAVA环境这么难!
- LockSupport先park再unpark为啥不能停止
- --------------困扰已久的问题,请大家帮忙:想问下大家是怎么处理系统中 的并发问题的?-----------------
- struts2标签问题,求教~
int index = str.lastIndexOf(".");
if(index == -1) {
sout("error");
return;
}
String postfix = str.substring(index + 1);
字符串从后向前遍历到的第一个“.”之后的便是扩展名
可设置指针A
初试均指向字符开始处
将B遍历至字符串末尾
然后B向前遍历
遇到第一个.停止
向后读出的字符便是扩展名
public class ReadSuffix {
public static void main(String[] args) {
String Str = "abc.java.txt.a";
Pattern p = Pattern.compile(".*\\.([^.]*)");
Matcher m = p.matcher(Str);
m.find();
System.out.println(m.group(1));
}}
import java.util.regex.Pattern;/**
* 获取例如eg.txt.zip形式文件名的后缀名
*/
public class Suffix {
// String suffix="";
/**
* main()
*/
public static void main(String[] args) {
Suffix s=new Suffix();
String fileName="eg.txt.zip";
//第一种方法
System.out.println("第1种方法"+s.Method1(fileName));
//第二种方法
System.out.println("第2种方法"+s.Method2(fileName));
//第三种方法
System.out.println("第3种方法"+s.Method3(fileName));
//第四种方法
System.out.println("第4种方法"+s.Method4(fileName));
}
/**
* 索引
*/
public String Method1(String fileName){
String suffix="";
int index=fileName.lastIndexOf(".");
if(index==-1)
System.out.println("error");
else
suffix=fileName.substring(index+1);
return suffix;
}
/**
* 从后往前走,如果不是.则加入后缀名,如果是.,则返回
*/
public String Method2(String fileName){
String suffix="";
int fnLength=fileName.length();
for(int i=fnLength-1;i>=0;i--){
if(fileName.charAt(i)=='.'){
break;
}else{
suffix=fileName.charAt(i)+suffix;
}
}
return suffix;
}
/**
* 使用正则表达式
*/
public String Method3(String fileName){
String suffix="";
Pattern p = Pattern.compile(".*\\.([^.]*)");
Matcher m = p.matcher(fileName);
m.find();
suffix=m.group(1);
return suffix;
}
/**
* 使用split()方法分割字符串
*/
public String Method4(String fileName){
String suffix="";
String[]ss=fileName.split("\\.");
suffix=ss[ss.length-1];
return suffix;
}}