你如何比较角色?

时间:2013-10-01 14:02:16

标签: java random char compare

我只想问一下如何使用GUI中的字母来比较字符。 这是我随机写一封信的方式:

Random r = new Random();

char c = (char) (r.nextInt(26) + 'a');

然后,当我想将它与输入字母进行比较时,我就是这样做的:

char c;
if(x==c) {
    prompt.setText("Correct!");
    prompt.setForeground(Color.GREEN);
}
else if(x > c) {
    prompt.setText("Oops! Letter is lower");                
    prompt.setForeground(Color.RED);                      
}                  
else if(x < c) {                      
    prompt.setText("Oops! Letter is higher");                     
    prompt.setForeground(Color.RED);                  
}

但是,每次我运行我的程序时,我输入一封信的每一封信,结果都是“糟糕!字母更高”。

请帮帮我。如何正确运行这个程序?

谢谢!

3 个答案:

答案 0 :(得分:0)

我会使用Character.compare(char x, char y)来比较字符。它返回int值以显示差异。但是,很大的问题,什么是变量x?它是int,是另一个char还是完全不同的东西。现在,如果xchar变量,那么您可以使用以下内容进行比较:

例如:

 if (Character.compare(x, c) == 0) {
     // they are the same.
 } else if (Character.compare(x, c) >= 0) {
     // x is greater than c
 } else {
     // x is less than c
 }

答案 1 :(得分:0)

使用char1.compareTo(char2)方法。它会为您提供您正在寻找的价值。

如果您需要更多信息here

答案 2 :(得分:0)

试试这个:

Random r = new Random();

        char c = (char) (r.nextInt(26) + 'a');

        if ((int)x ==(int)c) {
            prompt.setText("Correct!");
            prompt.setForeground(Color.GREEN);
        } else if ((int)x >(int)c) {
            prompt.setText("Oops! Letter is lower");
            prompt.setForeground(Color.RED);
        } else if ((int)x <(int)c) {
            prompt.setText("Oops! Letter is higher");
            prompt.setForeground(Color.RED);
        }