如何检查字符串是否具有特定模式

时间:2011-10-27 09:32:51

标签: java regex

用户输入任何字符串,程序会区分字符串是否符合条件的产品ID。

合格产品ID是由两个大写字母和四个数字组成的字符串中的任何一个。 (例如,“TV1523”)

我该如何制作这个节目?

3 个答案:

答案 0 :(得分:32)

您应该使用正则表达式比较字符串,例如:

str.matches("^[A-Z]{2}\\d{4}")会给出一个关于它是否匹配的布尔值。

正则表达式的工作原理如下:

^ Indicates that the following pattern needs to appear at the beginning of the string.
[A-Z] Indicates that the uppercase letters A-Z are required.
{2} Indicates that the preceding pattern is repeated twice (two A-Z characters).
\\d Indicates you expect a digit (0-9)
{4} Indicates the the preceding pattern is expected four times (4 digits).

使用此方法,您可以遍历任意数量的字符串,并检查它们是否符合给定的条件。

您应该阅读正则表达式,如果您担心性能,可以使用更有效的方式存储模式。

答案 1 :(得分:5)

你应该仔细看看正则表达式。教程例如是在regular-expressions.info

你的模式的一个例子可能是

^[A-Z]{2}\d{4}$

你可以看到它here on Regexr.com是一个在线测试正则表达式的好地方。

这里有java regex tutorial,您可以看到如何用Java调用它们。

答案 2 :(得分:0)

public static void main(String[] args) throws Exception {
    String id = "TV1523";
    BufferedReader br = new BufferedReader((new InputStreamReader(System.in)));
    String tocompare = br.readLine();
    if(tocompare.equals(id)) { //do stuff

类似的东西,除了你可能用魔杖把readLine()包含在try catch中:x