JAVA为什么这个缩短的版本不起作用?

时间:2013-10-17 23:18:09

标签: java if-statement logic

 public String withoutEnding(String str){
     return (boolean)(str.length() <= 2) && "" || str.substring(1,str.length() - 1);
 }

而不是

 public String withoutEnding(String str){
     if (str.length <= 2)
       return "";
    else return str.substring(1,str.length() - 1)
 }

这会错,第一个。我在AP计算机科学课上开始学习Java,虽然我对编码有一些了解,但这让我感到烦恼,我不知道如何在Google上搜索我的问题,如果可以在另一篇文章中找到,那就很抱歉

但只是想知道为什么第一个不起作用。

1 个答案:

答案 0 :(得分:5)

&&||逻辑运算符仅适用于boolean值。 ""str.substring(1,str.length() - 1)不是boolean,因此编译错误。

一种有效,紧凑的写作方式是使用?: ternary operator(在该链接页面中向下滚动一半):

return (str.length() <= 2) ? "" : str.substring(1, str.length() - 1);

表单基本上是condition ? trueValue : falseValue