給定一個字符串,遞歸計算(無循環)字符串中小寫'x'字符的數量。Java在指定的字符串中計算x的數量
countX( 「xxhixx」)→4
countX( 「xhixhix」)→3
countX( 「HI」)→0
我嘗試:
public int countX(String str) {
int sum = 1;
if(str.length()-1==0){
return sum;
}
else{
if(str.charAt(0)=='x'){
return sum+countX(str.substring(1));
}
if(str.charAt(0)!='x'){
return countX(str.substring(1));
}
}
}
我收到以下錯誤消息:This method must return a result of type int.
甚至不知道我的基本情況是否正確。任何提示?
您沒有返回條件之外。 – KyleKW
*你可以知道'=='和'!='是互斥的,但編譯器不能。使用'else'而不是'!='。 – chrylis
@chrylis:嚴格來說,互相排斥在這裏並不重要。重要的是,這兩個ifs耗盡了所有可能性。它們可以重疊 - 因此不會相互排斥 - 並且仍然可以。相反,它們可能是相互排斥的,但未能涵蓋所有可能性。 – NPE