编写程序获取已知文件的扩展名. 注意: abc.txt的扩展名是txt, abc.java.txt的扩展名也是txt。

解决方案 »

  1.   

    String str;
    int index = str.lastIndexOf(".");
    if(index == -1) {
    sout("error");
    return;
    }
       String postfix = str.substring(index + 1);
      

  2.   

    提供一种思路:
    字符串从后向前遍历到的第一个“.”之后的便是扩展名
    可设置指针A
    初试均指向字符开始处
    将B遍历至字符串末尾
    然后B向前遍历
    遇到第一个.停止
    向后读出的字符便是扩展名
      

  3.   

    import java.util.regex.*;
    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));
    }}
      

  4.   

    String.subString((String.lastIndexOf(".")+1,String.length());
      

  5.   

    总结了下前边三种方法,自己又另附上一种方法,可以参考下。package per.eyuan.test;import java.util.regex.Matcher;
    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;
    }}