我只想问一下如何使用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);
}
但是,每次我运行我的程序时,我输入一封信的每一封信,结果都是“糟糕!字母更高”。
请帮帮我。如何正确运行这个程序?
谢谢!
答案 0 :(得分:0)
我会使用Character.compare(char x, char y)
来比较字符。它返回int
值以显示差异。但是,很大的问题,什么是变量x
?它是int
,是另一个char
还是完全不同的东西。现在,如果x
是char
变量,那么您可以使用以下内容进行比较:
例如:
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);
}