我只是想问一下,如何比较两个角色。 我这里有一个GUI程序,可以输入一个字符,并猜测你输入的字符是否与randomed字母相同。
Random r = new Random();
char c = (char) (r.nextInt(26) + 'a');
String x = input.getText();
char y = x.charAt(0);
if (Character.compare(y, c) == 0) {
prompt.setText("Correct!");
prompt.setForeground(Color.GREEN);
}
else if (Character.compare(y, c) = 0) {
prompt.setText("Oops! Letter is lower");
prompt.setForeground(Color.RED);
}
else if (Character.compare(y, c) <= 0) {
prompt.setText("Oops! Letter is higher");
prompt.setForeground(Color.RED);
}
这是我上面的代码。 但问题是,结果并不匹配。 当randomed字母是&#34; j&#34;例如,即使我输入&#34; j&#34;在文本区域。
它说,&#34;哎呀!信更高&#34;
我的问题出了什么问题?
谢谢!
答案 0 :(得分:0)
这一行:
else if (Character.compare(y, c) = 0)
应该是:
else if (Character.compare(y, c) >= 0)
但是,由于您已经测试了== 0
案例,您可以这样做:
else if (Character.compare(y, c) > 0)
答案 1 :(得分:0)
首先,与您的问题无关的事情:
char
只是一个整数。您无需使用Character.compare()
进行比较。只需做
if (y == c) {
...
} else if (y > c) {
...
} else { // y < c
...
}
应该有用。
根据您在其他答案的评论中描述的症状,我怀疑还有其他一些逻辑问题。首先,每次都会产生随机,当然连续调用会产生不同的值。尝试输出随机字符和从输入中获得的字符,将它们放在输出消息中,看看它是否匹配。