Java - 检查用户的串行代码格式是否有效的程序

时间:2016-12-02 09:18:16

标签: java string format

我试图创建一个程序,要求用户输入特定格式的序列号,程序将验证代码是否有效。

格式应为2个数字,后跟短划线,4个数字,一个点,然后是4个数字和2个字母(注意:接受的字母只有a,b,c)。

有效格式示例:

adapter.notifyDataSetChanged();

如果字符串的长度比格式(长度为14个字符)更长/更短,则应显示无效。同样的,如果使用其他字符,它也会说无效。

这是我到目前为止所做的代码。我不知道如何才能达到指定的格式。希望有人可以提供帮助......

31-0001.2341ac    
00-9999.0001cb

2 个答案:

答案 0 :(得分:7)

我经常发帖说“不要使用正则表达式”。但在这种情况下:使用regular expressions。他们是这项工作的正确工具。

boolean isValid = sSerials[nCtr].matches(
    "[0-9]{2}"        // Match 2 digits
        + "-"         // Then a dash
        + "[0-9]{4}"  // Then 4 digits
        + "\\."       // Then a dot (which must be escaped)
        + "[0-9]{4}"  // Then 4 digits
        + "[abc]{2}"  // Then 2 a, b or c.            

这个正则表达式只是为了解释它的部分而分开。您可以在一行中编写字符串文字:

boolean isValid =
     sSerials[nCtr].matches("[0-9]{2}-[0-9]{4}\\.[0-9]{4}[abc]{2}");

答案 1 :(得分:0)

您可以使用某些网站或实用程序,例如regexr.com,这有助于为所需的字符串(产品的Seqial编号)构建正则表达式。 然后使用java.util.regex包来识别它们,

给出的链接java.util.regex将向您展示您可以使用哪些函数过滤特定类型的字符串。