如何确保获得特定的 char 变量
How to make sure to get specific char variables
我需要这个程序继续询问 cardChosen1
,直到用户给出介于 'a' 和 'h' 之间的答案。我知道我可以把
while (cardChosen1 == 'a' && cardChosen1 == 'b' && cardChosen1 == 'c' &&...
等但我更希望有一种更简洁的方式。我不仅要大写字母,还要符号和数字
我试过以下方法:
while (cardChosen1 > 'a' && cardChosen1 < 'h')
{
System.out.println ("Hey");
cardChosen1 = e.getKeyChar ();
}
但是不行。
这个条件是普遍的false
while (cardChosen1 == 'a' && cardChosen1 == 'b' && cardChosen1 == 'c' &&...
这个条件可行,但我希望您创建一个 Set<Character>
并通过 contains()
查找它是否存在于 Set
中
while (cardChosen1 > 'a' && cardChosen1 < 'h')
你快到了。问题是当你 do 得到一个介于 'a'
和 'h'
之间的答案时,你想循环 只要你不't得到这样的答案。只需加上一个否定运算符 (!
),你应该没问题:
while (!(cardChosen1 > 'a' && cardChosen1 < 'h')) {
更好的是,您可以使用一些布尔代数来简化此语句:
while (cardChosen1 <= 'a' || cardChosen1 > 'h')) {
您应该检查 ASCII codes。
例如,如果您想检查 a
到 h
的范围,请尝试
(int)cardChosen1 > 97 || (int)cardChosen1 < 122
首先,您在上面输入的建议答案的正确形式必须是这样的:
while (cardChosen1 == 'a' || cardChosen1 == 'b' || cardChosen1 == 'c' || ... || cardChosen1 == 'h')
因为你需要一个字符是"a"或"b"or "c" ...但是你输入的字符是all 从 'a' 到 'h' 的字符,这是不可能的。
现在为您提供简洁的方法。你已经接近答案了,稍作改动就可以了。但是使用 Explicit Type Cast 更具可读性(在 Java 中)(当然它是可选的)。像这样:
while ((int) cardChosen1 >= (int) 'a' || (int) cardChosen1 <= (int) 'h')
如果是 'a' 或 'h' 本身,请注意接受答案时的 >=
和 <=
符号。
最后,您必须按照我上面的解释将 &&
转换为 ||
。
我需要这个程序继续询问 cardChosen1
,直到用户给出介于 'a' 和 'h' 之间的答案。我知道我可以把
while (cardChosen1 == 'a' && cardChosen1 == 'b' && cardChosen1 == 'c' &&...
等但我更希望有一种更简洁的方式。我不仅要大写字母,还要符号和数字
我试过以下方法:
while (cardChosen1 > 'a' && cardChosen1 < 'h')
{
System.out.println ("Hey");
cardChosen1 = e.getKeyChar ();
}
但是不行。
这个条件是普遍的false
while (cardChosen1 == 'a' && cardChosen1 == 'b' && cardChosen1 == 'c' &&...
这个条件可行,但我希望您创建一个 Set<Character>
并通过 contains()
Set
中
while (cardChosen1 > 'a' && cardChosen1 < 'h')
你快到了。问题是当你 do 得到一个介于 'a'
和 'h'
之间的答案时,你想循环 只要你不't得到这样的答案。只需加上一个否定运算符 (!
),你应该没问题:
while (!(cardChosen1 > 'a' && cardChosen1 < 'h')) {
更好的是,您可以使用一些布尔代数来简化此语句:
while (cardChosen1 <= 'a' || cardChosen1 > 'h')) {
您应该检查 ASCII codes。
例如,如果您想检查 a
到 h
的范围,请尝试
(int)cardChosen1 > 97 || (int)cardChosen1 < 122
首先,您在上面输入的建议答案的正确形式必须是这样的:
while (cardChosen1 == 'a' || cardChosen1 == 'b' || cardChosen1 == 'c' || ... || cardChosen1 == 'h')
因为你需要一个字符是"a"或"b"or "c" ...但是你输入的字符是all 从 'a' 到 'h' 的字符,这是不可能的。
现在为您提供简洁的方法。你已经接近答案了,稍作改动就可以了。但是使用 Explicit Type Cast 更具可读性(在 Java 中)(当然它是可选的)。像这样:
while ((int) cardChosen1 >= (int) 'a' || (int) cardChosen1 <= (int) 'h')
如果是 'a' 或 'h' 本身,请注意接受答案时的 >=
和 <=
符号。
最后,您必须按照我上面的解释将 &&
转换为 ||
。