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

wat*_*ura 0 java logic if-statement

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

而不是

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

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

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

rge*_*man 5

&&||逻辑运算符只对工作boolean价值. ""并且str.substring(1,str.length() - 1)不是boolean,所以这是一个编译器错误.

编写所需内容的有效,紧凑的方法是使用?:三元运算符(在该链接页面中向下滚动一半):

return (str.length() <= 2) ? "" : str.substring(1, str.length() - 1);
Run Code Online (Sandbox Code Playgroud)

表格基本上是, condition ? trueValue : falseValue