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
谢谢,有点容易,一旦我看到它,我想我嫌笑。初学者编码器给你。谢谢 –