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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一步步 中级黑马   /  2013-11-15 19:55  /  1367 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 一步步 于 2013-11-16 08:28 编辑

return  path == null ||  path.lastIndexOf(".") == -1? null: path.substring(path.lastIndexOf(".") + 1);
这段话是什么意思啊?我理解的有点模糊,请帮我解释一下

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 神马都是浮云

查看全部评分

4 个回复

倒序浏览
本帖最后由 qq379264347 于 2013-11-15 22:48 编辑

path应该是String类型的,判断他是不是null,是的话返回true,不是的话再判断它包含英文点"."不,不包含的话返回null,否则返回最后一次出现"."的位置,在+1.因为获取的位置是从0开始的。所以+1.看来返回的类型不是一种啊,难道返回的Object类型。






上面的是有点问题,现在做一下说明,||运算优先于 ? :运算,所以?左面的优先运行,||两边的是一体的。加上小括号就是这样子:
return  (path == null ||  path.lastIndexOf(".") == -1) ? null : path.substring(path.lastIndexOf(".") + 1);
呵呵,真是的,把这细节都给忽略了。
附上JAVA运算符优先级表:

  1. 1    .  [  ]  (  )
  2. 2    ++  --  !  ~  instanceof
  3. 3    new (type)
  4. 4    *  /  %
  5. 5    +  -
  6. 6    >>  >>>  <<
  7. 7    >  <  >=  <=
  8. 8    ==  !=
  9. 9    &
  10. 10    ^
  11. 11    |
  12. 12    &&
  13. 13    ||
  14. 14    ? :
  15. 15    =  +=  -=  *=  /=  %=  ^=
  16. 16    &=  |=  <<=  >>=  >>>=
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

回复 使用道具 举报
return  path == null ||  path.lastIndexOf(".") == -1? null: path.substring(path.lastIndexOf(".") + 1);
当 path == null 为真就返回null;
当 path == null 为假 就继续判断   path.lastIndexOf(".") == -1,如为真就返回null;
当 path == null 为假 就继续判断   path.lastIndexOf(".") == -1,如为假就返回  path.substring(path.lastIndexOf(".") + 1);

评分

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

查看全部评分

回复 使用道具 举报
path.substring(path.lastIndexOf(".") + 1); 表示获取 . 后面的子字符串。
回复 使用道具 举报
”卑微の小幸福“说的是对的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马