這就是我爲編碼蝙蝠項目寫的東西。出於某種原因,它說這種方式不起作用,但如果我翻轉它,它就會起作用。這是爲什麼?當它輸入少於3個字符的東西時,它會根據編碼欄收到錯誤消息。爲什麼這個布爾表達式不工作翻轉?
// Given a string, return a new string where "not " has been added to the front.
// However, if the string already begins with "not", return the string unchanged.
// Note: use .equals() to compare 2 strings.
// notString("candy") → "not candy"
// notString("x") → "not x"
// notString("not bad") → "not bad"
public String notString(String str) {
String m;
if (str.substring (0,3).equalsIgnoreCase("not") && str.length() >= 3) // this line doesn't work in it's current state
// but works if I flip the two boolean expressions over the &&
m = str;
else {
m = "not " + str;
}
return m;
因爲你第一次得到'substring'然後檢查它的'length'。如果'length'小於3會發生什麼。'&&'的第一部分會導致錯誤。我的猜測是編譯器處理這種情況的方式。 – Prateek
而不是使用'str.substring(0,3).equalsIgnoreCase(「not」)''你可以使用'str.startsWith(「not」)',如果我們想忽略你傷口的情況加入'str.toLowerCase ).startsWith(「not」)' – Vallentin