String c = JOptionPane.showInputDialog(null,"Pick a conversion to do:\nGrade");
if (c.equals("grade")||("Grade"))
我想它如果用戶輸入級或甲級不僅僅是級開始,但是當我用這個,我得到一個錯誤。我將如何修復如何測試字符串是否等於「x」|| 「X」?
String c = JOptionPane.showInputDialog(null,"Pick a conversion to do:\nGrade");
if (c.equals("grade")||("Grade"))
我想它如果用戶輸入級或甲級不僅僅是級開始,但是當我用這個,我得到一個錯誤。我將如何修復如何測試字符串是否等於「x」|| 「X」?
實際的問題:您正在使用||
不當。 It expects, on both sides,boolean
類型的東西存在。
從JLS:
條件-或操作中的每個操作數必須是布爾類型或布爾值,或編譯時發生錯誤。
由於"Grade"
不是布爾(但c.equals("grade")
是),這成爲一個編譯時間錯誤。
雖然你可以通過更正右側布爾解決它......
if(c.equals("grade") || c.equals("Grade"))
...爲什麼不這樣做在一個更簡單的方法?
if(c.equalsIgnoreCase("grade"))
對字符串這個特殊的equals
很可能設計用於該用途的情況下(或其他用途的情況下,爲「等級」將失敗支票太)。它會首先對你的字符串進行長度檢查,然後對每個元素進行不區分大小寫的比較。
你不能把一個||聲明在這樣的方法調用中。
if (c.equals("grade")||c.equals("Grade")){
//do stuff
}
還有其他方式使用其他方法來完成你的任務,IE瀏覽器,但你的問題是未來形式的濫用||運營商。
+1的實際解釋的問題。 – user2864740
你可以試試:
if (c.toLowerCase().equals("grade")) { }
這也是我要去的地方。 – Ross
難道c.equalsIgnoreCase()優於c.toLowerCase()。等於?對此有何評論? – bschandramohan
謝謝,有點容易,一旦我看到它,我想我嫌笑。初學者編碼器給你。謝謝 –