【问题标题】:Assert user input is capital letter断言用户输入是大写字母
【发布时间】:2011-09-17 09:21:15
【问题描述】:

我必须编写一个用户应该输入字符串的程序。第一个和第二个字符必须是大写字母,其余的必须是数字。如果用户没有正确输入,程序应该会生成一个消息通知输入错误。

我知道我可以通过编写一个循环来扫描用户输入中的每个符号并查找错误来做到这一点。

所以说我已经定义了:

字符符号;

我使用带有 charAt(loop number) 的循环

我能不能用比书写更简单的方式扫描大写字母,比如:

if (sign != 'A' || sign != 'B' || sign !='C' || sign != 'D' . . . .)  

所有字母?这是编写程序的一种乏味的方式。因此,如果有人知道断言输入是大写字母的任何快捷方式/方法,我将不胜感激!

【问题讨论】:

  • 这取决于您使用的语言...
  • 哦。很抱歉没有提到它。我正在使用 Java。

标签: java input assert


【解决方案1】:
ch=(char) inputstream.read();
if(Character.isUpperCase(ch)) {
    /* DO SOMETHING */
}
else {
    /* DO SOMETHING ELSE*/
}

【讨论】:

    【解决方案2】:

    类似这样的:

    if(sign >= 'A' && sign <= 'Z')
    

    如果符号是大写字母,则为真。

    【讨论】:

    • 谢谢。我会试试看。
    【解决方案3】:

    您可以在整个字符串上使用regular expression,而不是逐个字符地测试。

    if (!userString.matches("^[A-Z]{2}\d+$") {
        // Generate a warning...
    }
    

    这个正则表达式的作用是强制字符串的开头是两个大写字母,然后是至少一个数字到字符串的结尾。

    如果您想按照您的建议执行循环代码,请使用 Character.isUppercase(char c) method in the Java libraries 测试字母是否为大写。同样,您可以使用Character.isDigit(char c) 来测试一个数字。

    【讨论】:

      【解决方案4】:
      if Sign = Uppercase(Sign) then
        DoSomethingIfItIsUppercase;
      
      // Say Sign was "j", the Uppercase(); will make it "J", and then they dont match.
      // But if Sign was "J", Uppercase(); would still make it "J", and they would match.
      

      这行得通吗?

      注意:这是 Delphi,因为您没有指定您使用的语言;)

      这是一个 Java 示例(未经测试!):

        char Char1 = yourinput.charAt(0);
        char Char2 = yourinput.charAt(1);
        // Those were the first to characters
        // Now check if they are uppercase
        if(Char1==Character.toUpperCase(Char1) && Char2==Character.toUpperCase(Char2))
        {
          // Do something if both are uppercase
        }
      

      【讨论】:

      • 谢谢。我也要试试这个!
      • 我相信 Patrik 和我的建议都会奏效 - 选择最适合您的!由于帕特里克的回答只使用运算符,我会说他的回答是最好的:)
      猜你喜欢
      • 1970-01-01
      • 2018-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多