黑马程序员技术交流社区
标题:
java小问题
[打印本页]
作者:
一步步
时间:
2013-11-15 19:55
标题:
java小问题
本帖最后由 一步步 于 2013-11-16 08:28 编辑
return path == null || path.lastIndexOf(".") == -1? null: path.substring(path.lastIndexOf(".") + 1);
这段话是什么意思啊?我理解的有点模糊,请帮我解释一下
作者:
qq379264347
时间:
2013-11-15 20:02
本帖最后由 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 . [ ] ( )
2 ++ -- ! ~ instanceof
3 new (type)
4 * / %
5 + -
6 >> >>> <<
7 > < >= <=
8 == !=
9 &
10 ^
11 |
12 &&
13 ||
14 ? :
15 = += -= *= /= %= ^=
16 &= |= <<= >>= >>>=
复制代码
作者:
卑微の小幸福
时间:
2013-11-15 20:12
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);
作者:
阿里策
时间:
2013-11-15 20:28
path.substring(path.lastIndexOf(".") + 1); 表示获取 . 后面的子字符串。
作者:
默狼
时间:
2013-11-15 20:57
”卑微の小幸福“说的是对的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2