2014-03-14 118 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

相关问题