我是java的新手。
这是我的代码:
public boolean endsLy(String str) {
if(str.length()>=2){
if(str.substring(str.length()-2).equals("ly")) return true;
}
else return false;
}
但编译器给出:
Error: public boolean endsLy(String str) {
This method must return a result of type boolean
可能的问题:理论上可能是if语句结构 允许运行到达方法的末尾而不调用return 考虑在方法中添加最后一行返回some_value; 所以总会返回一个值。
答案 0 :(得分:6)
您没有处理(str.length()>=2
所在的分支,而是!str.substring(str.length()-2).equals("ly")
。从最终的else
声明中删除return
:
public boolean endsLy(String str) {
if(str.length()>=2){
if(str.substring(str.length()-2).equals("ly")) return true;
}
return false;
}
更简单的替代方案(也不太容易出现您遇到的错误),只有一个return
语句:
public boolean endsLy(String str) {
return str.length()>=2 && str.substring(str.length()-2).equals("ly");
}
答案 1 :(得分:3)
或者简单地说:
public static boolean endsLy(String str) {
return str.length()>= 2 && str.substring(str.length()-2).equals("ly");
}
您还可以检查String
是否为空。
return str != null && str.length()>= 2 && str.substring(str.length()-2).equals("ly");
答案 2 :(得分:0)
这里有一个更正:
public boolean endsLy(String str) {
if(str.length()>=2){
if(str.substring(str.length()-2).equals("ly"))
return true;
else
return false;
}
else{
return false;
}
}
答案 3 :(得分:0)
此错误表示在某些情况下函数可能不会返回任何内容。
所以,如果这个条件=> if(str.length()>=2)
表示代码将进入其中。现在如果这个条件是假的=> if(str.substring(str.length()-2)
该函数将无法返回。因此,错误提示是明智之举。
这意味着并非此函数中的所有条件都返回bool值。当函数没有任何东西可以返回时,可能会出现条件。
答案 4 :(得分:0)
避免多个false return语句,因为返回值仅对于条件if为真(str.substring(str.length() - 2).equals(“ly”))。以下代码仅供参考。
public boolean endsLy(String str) {
if(str.length()>=2){
if(str.substring(str.length()-2).equals("ly"))
return true;
}
return false;
}
答案 5 :(得分:0)
因为在!str.substring(str.length() - 2)中没有返回布尔值。等于(“ly”)
如果你想检查你的链是由最后两个中的四个字符组成的“ly”,你可以使用以下代码:
public boolean endsLy(String str) {
if (str.length() == 4 && str.endsWith("ly"))
return true;
return false;
}