遇到Java中的Character.isWhiteSpace()问题

时间:2014-10-01 15:00:08

标签: java character

我有一个需要解决的家庭作业问题。代码工作正常,除了空格选项。当我使用.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");
        }
    }
}

1 个答案:

答案 0 :(得分:3)

问题在于您使用Scanner.next()

  

查找并返回此扫描仪的下一个完整令牌。在完成令牌之前和之后是与分隔符模式匹配的输入。

Scanner的默认分隔符是空格 - 因此它不会返回空格。

您可能希望使用nextLine代替...但请注意,如果用户只按下返回,则该行将为空,因此charAt(0)将引发异常。