用java验证模式

用java验证模式,java,validation,tokenize,Java,Validation,Tokenize,我必须用java验证以下模式 X.X.X 其中,X可以是任何有效的整数,但X.X.X将以字符串的形式出现 目前,我正在标记字符串以检查值和级别数 有没有更好的方法呢?你可以用a regex“[\\d]+\.[\\d]+\.[\\d]+”应该可以工作 \\d-表示数字 “+”表示最后一个元素中的一个或多个 \\。是一个点 代码捕捉: Matcher matcher = Pattern.compile("[\\d]+\\.[\\d]+\\.[\\d]+").matcher(""); match

我必须用java验证以下模式

X.X.X
其中,
X
可以是任何有效的整数,但
X.X.X
将以字符串的形式出现

目前,我正在标记字符串以检查值和级别数

有没有更好的方法呢?

你可以用a

regex
“[\\d]+\.[\\d]+\.[\\d]+”
应该可以工作

  • \\d
    -表示数字
  • “+”表示最后一个元素中的一个或多个
  • \\。
    是一个点
代码捕捉:

Matcher matcher = Pattern.compile("[\\d]+\\.[\\d]+\\.[\\d]+").matcher("");
matcher.reset("11.1234.33333");
System.out.println(matcher.matches());
matcher.reset("1.abcd.3");
System.out.println(matcher.matches());
将如预期的那样产生:

true
false

如果您的解决方案可行,并且您和您的团队可以理解,您为什么要更改它


您可以使用正则表达式,但它从根本上讲并不更好。坚持使用对您来说有效且简单的方法。

是的,正则表达式。类似于:
“\\d+\.\\d+\.\\d+”
为什么括号中有
\\d
?“这是不必要的。”Antoh习惯,我个人觉得它更易读——但这是个人喜好,仅此而已。请注意数字并不总是整数;-)