String c = JOptionPane.showInputDialog(null,"Pick a conversion to do:\nGrade");
if (c.equals("grade")||("Grade"))
如果用户输入成绩或成绩不仅仅是成绩,我希望它开始,但是当我使用它时,我得到一个错误。我该如何解决?
答案 0 :(得分:3)
你不能放||语句在这样的方法调用中。
if (c.equals("grade")||c.equals("Grade")){
//do stuff
}
还有其他方法可以完成你的任务,IE使用其他方法,但你的问题正在形成滥用||操作
答案 1 :(得分:3)
实际问题:您未正确使用||
。 It expects, on both sides,存在类型boolean
的内容。
来自JLS:
条件运算符或运算符的每个操作数必须是boolean或Boolean类型,否则会发生编译时错误。
由于"Grade"
不是布尔值(但c.equals("grade")
是),因此会出现编译时错误。
当你可以通过纠正右侧的布尔值来修复它...
if(c.equals("grade") || c.equals("Grade"))
...为什么不以更直接的方式做到这一点?
if(c.equalsIgnoreCase("grade"))
String上的这个特殊equals
可能是针对这个用例(或其他用例,因为" GrAde"也会使你的检查失败)而设计的。它将首先对字符串执行长度检查,然后对每个元素进行不区分大小写的比较。
答案 2 :(得分:2)
您可以尝试:
if (c.toLowerCase().equals("grade")) { }