【问题标题】:validate the user input to be in this format "ABC123" isvalid boolean验证用户输入是否采用这种格式 "ABC123" isvalid boolean
【发布时间】:2014-11-01 20:40:42
【问题描述】:

我在验证航班代码时遇到问题,我想使用此表单 ABC123 输入航班代码

private void ValidationOfFlightCode(String flightCode)
{
    if (flightCode.length()== 6)
    {
        boolean isvalid = Regex.IsMatch(flightCode, @"^[a-zA-Z]{3}[0-9]{3}$");
        if (isvalid)
        {
            boolean isLetter = false;
            for (int i = 0; i < 3; i++)
            {
                isLetter = Char.IsLetter(flightCode, i);
                if (!isLetter)
                    break;
            }
            if (isLetter)
            {
                System.err.println(flightCode + ": " + isvalid);
            }
            else
            {
                System.err.println("");
            }
        }
        else
        {
            System.err.println("");
        }
    }
    else
    {
        System.err.println("");
    }
}

【问题讨论】:

  • 你面临什么问题(除了这个代码看起来不像 Java,因为在这种语言中没有标准的 Regex 类约束 IsMatch 方法)?
  • 我对您的实际问题感到困惑
  • Char.IsLetter(flightCode, i) 检查的目的是什么?您已经检查过输入的格式是否正确。
  • swig 的链接是什么???

标签: java performance jakarta-ee swig


【解决方案1】:

怎么样:

private void ValidationOfFlightCode(String flightCode){
   boolean isValid = flightCode.matches("^[A-Z]{3}[0-9]{3}$");
   System.out.println(flightCode + ": " + isValid);
}

基本上,您的代码的其余部分是不必要的,因为正则表达式已经包含 6 个字符的要求和指定的格式(3 个大写字母,然后是 3 个数字)。 更有意义的是:

private boolean validateFlightCode(String flightCode){
   boolean isValid = flightCode.matches("^[A-Z]{3}[0-9]{3}$");
   //System.out.println(flightCode + ": " + isValid);
   return isValid;
}

第二个选项也返回验证结果。此外,方法命名符合 Java 编码约定,可读性更好,因为您实际上不是在描述过程(验证),而是操作(验证)。

编辑:"^[A-Z]{3}[0-9]{3}$" 仅用于大写字母,"^[a-z]{3}[0-9]{3}$" 仅用于小写,"^[a-zA-Z]{3}[0-9]{3}$" 用于混合,"^([A-Z]|[a-z]){3}[0-9]{3}$" 用于任何一个。

【讨论】:

  • 很难判断 OP 是否只需要大写字母。也许添加他必须确定的信息。
  • 是的,谢谢,添加了有关不同正则表达式格式的附加信息。
  • 谢谢你们,我很感激。
猜你喜欢
  • 2011-04-27
  • 2011-11-07
  • 1970-01-01
  • 2019-12-05
  • 2021-01-13
  • 1970-01-01
  • 2020-07-19
  • 2011-01-27
  • 2013-09-15
相关资源
最近更新 更多