我有一个需要解决的家庭作业问题。代码工作正常,除了空格选项。当我使用.isWhiteSpace时,NetBeans会给我一个警告,但是当我使用.isWhitespace时它会消失。无论哪种方式,当我运行程序并输入空格或选项卡时,程序只是继续运行,完全忽略它。有什么建议吗?
package problemset3;
import java.util.Scanner;
public class ProblemSet3
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.print("Enter a character: ");
String userString = in.next();
char userChar = userString.charAt(0);
if (Character.isDigit(userChar))
{
System.out.println("Character is a number.");
}
else if (Character.isLetter(userChar))
{
if (Character.isUpperCase(userChar))
{
System.out.println("Character is an upper case letter");
}
else
{
System.out.println("Character is a lower case letter");
}
}
else if (Character.isWhitespace(userChar))
{
System.out.println("Character is white space.");
}
else
{
System.out.println("Character is unknown");
}
}
}
答案 0 :(得分:3)
问题在于您使用Scanner.next()
:
查找并返回此扫描仪的下一个完整令牌。在完成令牌之前和之后是与分隔符模式匹配的输入。
Scanner
的默认分隔符是空格 - 因此它不会返回空格。
您可能希望使用nextLine
代替...但请注意,如果用户只按下返回,则该行将为空,因此charAt(0)
将引发异常。