比较 2 个字符的值



我只想问一下,如何比较两个字符。我这里有一个GUI程序,可以让你输入一个字符,并猜测你输入的字符是否与随机字母相同。

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);
}

这是我上面的代码。但问题是,结果不匹配。例如,当随机字母为"j"时,即使我在文本字段中输入"j"。

它说,"哎呀!信更高"

我的问题出了什么问题?

谢谢!

这一行:

else if (Character.compare(y, c) = 0)

应该是:

else if (Character.compare(y, c) >= 0)

但是,由于您已经测试了== 0案例,因此您可以执行以下操作:

else if (Character.compare(y, c) > 0)

首先,与您的问题无关:

char只是一个整数。 您无需使用 Character.compare() 进行比较。 只需做

if (y == c) {
  ...
} else if (y > c) {
  ...
} else {  // y < c
  ...
}

应该工作。

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

相关内容

  • 没有找到相关文章

最新更新