输入时无法让程序识别大写字母?

时间:2014-04-07 19:43:52

标签: java

Java初学者 - 希望有人可以帮我解决这个问题。我正在尝试编写一个简单的程序,根据用户输入的字符显示特定的消息。我遇到的问题是,在确定要打印哪条消息时,它无法识别大写字符的有效性。

代码编译好,但是如果我输入大写字母,它会打印出消息,告诉我它不是一个有效字符来启动标识符。

以下是源代码片段:

choice2 = (char) System.in.read();

if(choice2 == 'q')
   break;

else 
  if(choice2 == '_' || choice2 >= 'a' && choice2 <= 'z' && choice2 >= 'A' && choice2 <= 'Z' && choice2 > '0' && choice2 <= '9')
    System.out.println("That is a valid character to start an identifier.");

else 
  if(choice2 == '$')
    System.out.println("That is a valid character to start an identifier but should only be used by mechanically generated source code");

else
  System.out.println("Sorry, that is not a valid character to start an identifier");
break;

我做错了什么或是char数据类型固有的东西?

由于

1 个答案:

答案 0 :(得分:5)

问题在于您的布尔分组和一对&&应该是||

if (choice2 == '_' || 
    ((choice2 >= 'a' && choice2 <= 'z') || 
     (choice2 >= 'A' && choice2 <= 'Z') || 
     (choice2 > '0' && choice2 <= '9')))

如果truechoice2 == '_'介于choice2a之间,z和{{A之间Z,则评估为0 1}}包容性,或9和{{1}}之间的包含。