黑马程序员技术交流社区

标题: 代码{{疑问 [打印本页]

作者: 一步步    时间: 2013-11-15 20:35
标题: 代码{{疑问
package test;
public class seven {
        public static void main(String[] args) {
               

        }

}、、、、、、、、、、、、、、
public String getPath(String path)
{
return path==null||path.lastIndexOf(".")==-1?null:path.substring(path.lastIndexOf(".")+1);
}、、、、、、、、、、、、、、、、、、、、、
这段代码、、、、、、、、、、、、、注释的地方有错误怎么回事?


作者: 默狼    时间: 2013-11-15 20:53
没看懂,你这个是指你的代码写到类外面了吗?
作者: Weix1992    时间: 2013-11-15 21:09
方法都到写到类外面去了
作者: smileven    时间: 2013-11-15 21:13
亲,提问得把问题描述清楚哦。
写代码首先要把格式搞清晰点~
作者: FFF    时间: 2013-11-15 22:14
如果问题已经解决,请及时修改主题为“提问结束”。
修改主题的方法链接
http://bbs.itheima.com/thread-89313-1-1.html
如果没有解决,可能你的问题问得不够清楚。可以重新发问的哦~
作者: qq379264347    时间: 2013-11-15 22:36
第一个错误是你的类的方法体写在了类的大括号外面了,把下面的方法声明行和大括号以及中间的代码放进类的大括号中。
第二个错误你由第一个错误引起的,修改一下就没有错误了。
下面的那个方法,我感觉你返回的类型不是一种,path==null返回的是布尔值true或false,而接下来的是||运算符就是或者后面的运算,path.lastIndexOf(".")==-1?null:path.substring(path.lastIndexOf(".")+1);返回的不是null就是查询的"."的位置int型的数字了。你看一下你的逻辑应该是有问题吧,或者把后面的int再转一下String。
不过我试了一下,可以运行,不明白了。不过可以肯定你的方法判断逻辑有问题。
作者: qq379264347    时间: 2013-11-15 22:49
哦,懂了。
上面的是有点问题,现在做一下说明,||运算优先于 ? :运算,所以?左面的优先运行,||两边的是一体的。加上小括号就是这样子:
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    &=  |=  <<=  >>=  >>>=
复制代码

作者: 一步步    时间: 2013-11-16 08:24
qq379264347 发表于 2013-11-15 22:49
哦,懂了。
上面的是有点问题,现在做一下说明,||运算优先于 ? :运算,所以?左面的优先运行,||两边的是一 ...

你怎看你楼上的评价,这有必要转化成String类型的吗?
作者: 一步步    时间: 2013-11-16 08:26
qq379264347 发表于 2013-11-15 22:36
第一个错误是你的类的方法体写在了类的大括号外面了,把下面的方法声明行和大括号以及中间的代码放进类的大 ...

请问你是怎么转的,其实这样做也对,就是把这段代码加到里面去
作者: 马明杨    时间: 2013-11-16 08:33
亲,把错误提示写出来
作者: 一步一脚印    时间: 2013-11-16 10:28
  1. public class eight {

  2.         public static void main(String[] args) {
  3.                 // TODO Auto-generated method stub

  4.         }
  5.     //你将方法放到了类外面 = = 你再好好看看
  6.         public String getPath(String path)
  7.         {
  8.         return path==null||path.lastIndexOf(".")==-1?null:path.substring(path.lastIndexOf(".")+1);
  9.         }
  10. }
复制代码
做技术的,容不得粗心啊。  加油吧




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