假設我有一個叫做withoutX
的方法,當給定一個字符串時,如果它們是x,則刪除該字符串的第一個和最後一個字母。爲什麼執行此代碼?
我的代碼是:
public String withoutX(String str) {
if(str.length()>0 && str.substring(0,1).equals("x")) {
str = str.substring(1);
}
if(str.length()>0 && str.substring(str.length()-1).equals("x")) {
str = str.substring(0,str.length()-1);
}
return str;
}
爲什麼這個返回空字符串( 「」)時,海峽= 「X」?當str =「x」在第一個if
語句之後失敗時不會出現這種情況,因爲str = str.substring(1)
引用了超出邊界的索引(str =「x」的最大索引爲0)?
'str == 0'? – Andreas
另外,'? :'具有最低優先級(除了'=')優先級,所以永遠不需要爲條件加上括號,但通常需要將括號括起來。 :'構造,即你需要'str.length() - (str.endsWith(「x」)?1:0)'。 – Andreas
@Andreas錯字。固定。 –