我想要的是输出A或Z。
除了A和Z之外,A和Z之间的所有其他内容都有效,我试图添加“else if” 与平等和&&但它不起作用。
“System.out.println(ConvertLetterToDigit(num2));” 获取输入并将其传输到一个开关,该开关将返回一个“int”值。
如果您需要更多信息,请在下面评论._。
char num1;
char num2;
String num3;
String equality;
System.out.println("\nThis game consists of inputting a digit and we will output the character linked to that digit.");
do
{
System.out.println("Please input a letter.");
equality= "^[a-zA-Z](1)";
num3 = console.next();
if (num3.length() < 2);
{
if (num3.matches(equality))
{
num2 = (char)num3.charAt(0);
System.out.println(ConvertLetterToDigit(num2));
}
else if (num3.length() > 1)
{
System.out.println("We said 1 letter.");
}
else
{
System.out.println("What do you think you're doing.");
}
}
} while (!num3.matches(equality));
break;
答案 0 :(得分:3)
如果我理解正确,您需要检查您的输入确实是a
和z
之间的字母。
在这种情况下,您的if
应为:
if( num2 >= 'a' && num2 <= 'z') {
// okay, do something
}
else {
// show error message
}
答案 1 :(得分:0)
您写的条件总是错误的:您要求num2
等于'a'
AND 'z'
。您应该将其重写为num2 >= 'a' && num2 <= 'z'
(注意更少/更多的符号会改变)。
排除'a'和'z'就像将>=
更改为>
,将<=
更改为<
一样简单。
&&
表示AND,||
表示OR。适当使用它们。 (与'a'和'z'匹配的条件是num2 == 'a' || num2 == 'z'
。)