A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 宁振庄 中级黑马   /  2012-9-23 15:01  /  1326 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 宁振庄 于 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异常

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
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]);
        }
}

希望对楼主有帮助

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

回复 使用道具 举报
在正则表达式中"."代表的是任意字符。所以应该用双反斜扛进行转义

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
public String[] split(String regex)
split()方法中的参数是要求传入一个正则表达式,而"."在正则表达式中表示为任意字符,所以必须用"\\."进行转义.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马