比较2个字符的值

时间:2013-10-01 23:37:51

标签: java char compare

我只是想问一下,如何比较两个角色。 我这里有一个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;

我的问题出了什么问题?

谢谢!

2 个答案:

答案 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
  ...
}

应该有用。

根据您在其他答案的评论中描述的症状,我怀疑还有其他一些逻辑问题。首先,每次都会产生随机,当然连续调用会产生不同的值。尝试输出随机字符和从输入中获得的字符,将它们放在输出消息中,看看它是否匹配。