我试图创建一个程序,要求用户输入特定格式的序列号,程序将验证代码是否有效。
格式应为2个数字,后跟短划线,4个数字,一个点,然后是4个数字和2个字母(注意:接受的字母只有a,b,c)。
有效格式示例:
adapter.notifyDataSetChanged();
如果字符串的长度比格式(长度为14个字符)更长/更短,则应显示无效。同样的,如果使用其他字符,它也会说无效。
这是我到目前为止所做的代码。我不知道如何才能达到指定的格式。希望有人可以提供帮助......
31-0001.2341ac
00-9999.0001cb
答案 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将向您展示您可以使用哪些函数过滤特定类型的字符串。