黑马程序员技术交流社区

标题: 关于求文件的后缀名 [打印本页]

作者: 宁振庄    时间: 2012-9-23 15:01
标题: 关于求文件的后缀名
本帖最后由 宁振庄 于 2012-9-23 15:58 编辑

看到一道求文件后缀名的题,如test.java.txt,我思路就是用split(".")分割文件名,拿到String数组的最后一个元素就是后缀名了。不过不好使,分割出来的数组好像是空的,报异常了,求各位大大解答。
  1. public class Test {
  2.         public static void main(String[] args) {
  3.                 String FileName = "test.java.txt";
  4.                 String[] arr = FileName.split(".");
  5.                 System.out.println("文件后缀名是:" + arr[arr.length-1]);
  6.                
  7.         }
  8. }
复制代码
报了Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1异常
作者: 张忠豹    时间: 2012-9-23 15:22
package com.itheima.test;

public class FileDemo {
        public static void main(String[] args) {
               
                String fileName = "test.java.txt";
                //split(String regex) : 根据给定 正则表达式 的匹配拆分此字符串 需要对‘.’进行转义'\\.'
                String[] arr = fileName.split("\\.");
               
                System.out.println("文件的后缀名是:"+arr[arr.length-1]);
        }
}

希望对楼主有帮助
作者: 明光照    时间: 2012-9-23 15:38
在正则表达式中"."代表的是任意字符。所以应该用双反斜扛进行转义
作者: AngieFans85    时间: 2012-9-23 15:43
public String[] split(String regex)
split()方法中的参数是要求传入一个正则表达式,而"."在正则表达式中表示为任意字符,所以必须用"\\."进行转义.




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