黑马程序员技术交流社区

标题: 这个代码谁能帮助理解下 [打印本页]

作者: 曾小贤OL    时间: 2014-8-22 21:22
标题: 这个代码谁能帮助理解下
package Test;
/**
* 编写一个可以获取文件扩展名的函数,
* 形参接收一个文件名字符串,返回一个扩展名字符串。
*/

public class Test7 {
        public static void main(String[] args){
                getFileExtension("Test2");
        }
        public static String getFileExtension(String name){
                return name == null || name.indexOf(".") == -1? null:name.substring(name.indexOf(".") + 1);
                }

}

作者: 曾小贤OL    时间: 2014-8-22 21:23
基础测试题里的,百度搜的,理解不了,帮帮忙!
作者: hejinzhong    时间: 2014-8-22 22:15

  1. 这个题就是单考你字符串的操作问题,subString 和 lastIndexOf
  2. 下面是这句话分析:
  3. return name == null || name.indexOf(".") == -1? null:name.substring(name.indexOf(".") + 1);
  4.             /*
  5.              * 这只是一个三元运算符的运算
  6.              * (1)? 前面是一个Boolean表达式,在你这个代码中为:name==null||name.indexof(".")==-1
  7.              *                 这个表达式是一个逻辑或的判断 :名字为空 或 name中没有小数点
  8.              *                 当这个表达式为真,则返回下面所说的表达式1,否则返回表达式2
  9.              * (2)? 后面是两个表达式,用:分开 分别为表达式1: null 和表达式2:name.substring(name.indexOf(".") + 1))
  10.              *                 表达式1很简单,就是空
  11.              *                 表达式2是一个字符串操作:截取name中最后一个小数点以后的内容,也就是后缀名
  12.              */
复制代码


作者: 曾小贤OL    时间: 2014-8-22 22:21
hejinzhong 发表于 2014-8-22 22:15

三克油,很详细
作者: hejinzhong    时间: 2014-8-22 22:23
曾小贤OL 发表于 2014-8-22 22:21
三克油,很详细

你百度的答案逻辑不完整,如果这么一个文件 hehe.txt.java 就会解析错误,应该用后查询 lastIndexOf
作者: Franklin    时间: 2014-8-22 22:34
学习了。

作者: 郑飞    时间: 2014-8-23 07:19
没复习到 忘了好多{:3_49:}
作者: 曾小贤OL    时间: 2014-8-23 09:13
hejinzhong 发表于 2014-8-22 22:23
你百度的答案逻辑不完整,如果这么一个文件 hehe.txt.java 就会解析错误,应该用后查询 lastIndexOf ...

恩,我改了下,谢谢
作者: 大★宝    时间: 2014-8-23 09:26
看了一遍,学习了
作者: 戏言丶    时间: 2014-8-23 11:04
我是来学习的




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