黑马程序员技术交流社区

标题: split切割字符串问题 [打印本页]

作者: adamjy    时间: 2014-4-21 22:20
标题: split切割字符串问题
本帖最后由 adamjy 于 2014-4-22 12:39 编辑

请问以下代码,为什么得不到文件的扩展名?

  1. public static void main(String[] args) throws Exception {
  2.         //文件名为fileName
  3.         String fileName = "test.java.txt";
  4.         //打印文件扩展名
  5.         System.out.println(getExtension(fileName));               
  6. }
  7.         
  8. public static String getExtension(String fileName){
  9.         String[] strs = fileName.split(".");
  10.         return strs[strs.length-1];
  11. }
复制代码

作者: 悠然丶    时间: 2014-4-21 22:28

public static String getExtension(String fileName){
        String[] strs = fileName.split(".");  //点在java中代表任意字符.这是正则表达式.你可以改成这样("\\.")就可以了
        return strs[strs.length-1];
}
这个题可以这样做更好点,很好理解吧
public static String getName(String str) {
                int index = str.lastIndexOf(".");  //获取最后字符"."的位置
                String s = str.substring(index, str.length()); //根据获得的"."的角标来截取字符串到最后
                return s;
作者: ⒈心只霸占沵    时间: 2014-4-21 22:29
"."在java中,有特殊的含义,在split方法里加[]就可以
  1. public static void main(String[] args) throws Exception {

  2.         //文件名为fileName

  3.         String fileName = "test.java.txt";

  4.         //打印文件扩展名

  5.         System.out.println(getExtension(fileName));               
  6. }

  7.         

  8. public static String getExtension(String fileName){

  9.         String[] strs = fileName.split("[.]");//这样

  10.         return strs[strs.length-1];

  11. }
复制代码

作者: WO.瘾姓埋銘    时间: 2014-4-21 22:45
这是根据正则表达式来拆解字符串,在正则表达式中.代表任何字符,所以需要用\\.来表示.
作者: 天山    时间: 2014-4-21 22:59
package com.isoftstone.interview;

public class text2 {

        public static void main(String[] args) throws Exception {
                // 文件名为fileName
                String fileName = "test.java.txt";
                // 打印文件扩展名
                System.out.println(getExtension(fileName));
        }

        public static String getExtension(String fileName) {
                String[] strs = fileName.split("\\.");     \\ split("\\") 用法是这样的
                return strs[strs.length - 1];
        }
}

作者: 2528870651    时间: 2014-4-21 23:05
⒈心只霸占沵 发表于 2014-4-21 22:29
"."在java中,有特殊的含义,在split方法里加[]就可以

还带这样啊 ???? 一直没注意 ,学习了。




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