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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张淦 于 2012-8-6 14:01 编辑

* 第六题:编写程序获取已知的文件扩展名,
*                   注意:abc.txt的扩展名是txt,abc.java.txt的扩展名也是txt
*/
class Test6
{
        public static void main(String[] args)
        {
                //测试输出结果
                String s1="abc.txt";
                String s2="abc.java.txt";
                String s3="abc.java";
                GetLastName(s1);
                GetLastName(s2);
                GetLastName(s3);
        }
        //编写具体方法获取扩展名
        public static void GetLastName(String s)
        {
                //以.切割文件名转换成字符串数组
                String[] arr=s.split(".");
                //输出最后一个元素,即文件扩展名
                System.out.println(arr[arr.length-1]);
        }
}
这是我报名参加黑马的基础测试题中的第六题,我的思路和代码如上,可是在最后出现了点问题,我曾用字符a或者字符b来切割,都能完成,但是用.来切割总是出现异常,初学不知道为什么。虽然这道题可以用字符串部分获取完成,但我觉得还是切割来的容易,请高手帮我解答为什么这里.字符不能作为切割!

4 个回复

倒序浏览
split
public String[] split(String regex)根据给定正则表达式的匹配拆分此字符串。
该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。因此,所得数组中不包括结尾空字符串。

例如,字符串 "boo:and:foo" 使用这些表达式可生成以下结果:

Regex 结果
: { "boo", "and", "foo" }
o { "b", "", ":and:f" }


参数:
regex - 定界正则表达式
返回:
字符串数组,它是根据给定正则表达式的匹配拆分此字符串确定的

楼主好好琢磨一下
回复 使用道具 举报
spilt()切割实际是根据正则表达式  你想用.切割,   它是特殊的字符,不能直接用  你可以写成\\. 这个样子就可以用.分割了。建议看看这则表达式。  字符串中有几个方法是根据正则的,有助于你使用这些方法,和理解你这道题。
回复 使用道具 举报
你死定了,不是说不能把题目发到这上面来吗。。发者,答者统统枪毙。。。。
回复 使用道具 举报
刘向阳 发表于 2012-8-6 13:20
spilt()切割实际是根据正则表达式  你想用.切割,   它是特殊的字符,不能直接用  你可以写成\\. 这个样 ...

谢谢,按照你说的,问题已解决!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马