2014-03-14 32 views

回答

3

實際的問題:您正在使用||不當。 It expects, on both sidesboolean類型的東西存在。

從JLS:

條件-或操作中的每個操作數必須是布爾類型或布爾值,或編譯時發生錯誤。

由於"Grade"不是布爾(但c.equals("grade")),這成爲一個編譯時間錯誤。

雖然你可以通過更正右側布爾解決它......

if(c.equals("grade") || c.equals("Grade")) 

...爲什麼不這樣做在一個更簡單的方法?

if(c.equalsIgnoreCase("grade")) 

對字符串這個特殊的equals很可能設計用於該用途的情況下(或其他用途的情況下,爲「等級」將失敗支票太)。它會首先對你的字符串進行長度檢查,然後對每個元素進行不區分大小寫的比較。

+0

謝謝,有點容易,一旦我看到它,我想我嫌笑。初學者編碼器給你。謝謝 –

3

你不能把一個||聲明在這樣的方法調用中。

if (c.equals("grade")||c.equals("Grade")){ 
    //do stuff 
} 

還有其他方式使用其他方法來完成你的任務,IE瀏覽器,但你的問題是未來形式的濫用||運營商。

+0

+1的實際解釋的問題。 – user2864740

2

你可以試試:

if (c.toLowerCase().equals("grade")) { } 
+0

這也是我要去的地方。 – Ross

+0

難道c.equalsIgnoreCase()優於c.toLowerCase()。等於?對此有何評論? – bschandramohan

相關問題