检查字符串是否具有特定格式?

时间:2014-06-03 07:02:07

标签: java regex string format

我需要boolean来检查给定字符串是否遵循以下格式:

x.x.x 1.2.3 ,其中 x 是单个数字

if string format == x.x.x then TRUE.
if string format != x.x.x then FALSE.

我怎样才能做到这一点?

5 个答案:

答案 0 :(得分:7)

您可以尝试使用此正则表达式

String x = "9.8.7";
boolean matches = x.matches("\\d\\.\\d\\.\\d"); // true

请注意,点.正在转义 \\.,因为它在 regex 中具有特殊含义。

这里有一些输入/输出样本:

"99.8.7"   -> false
"9.9.7."   -> false
"9.97"     -> false

答案 1 :(得分:3)

您可以使用Java中的正则表达式检查,如下所示:

String testString = "1.2.3";
boolean isCorrectFormat = testString.matches("\\d\\.\\d\\.\\d");

样本测试:

一些输入/输出样本:

"11.22.33" -> false

"1.2.3."   -> false

"1.23"     -> false

"1.1.1"    -> True

答案 2 :(得分:3)

使用正则表达式\d\.\d\.\d尝试String#matches

  String str="1.2.3";
  boolean isMatch=str.matches("\\d\\.\\d\\.\\d");

答案 3 :(得分:2)

String testString = "1.2.3";
boolean isCorrectFormat = testString.matches("\\d\\.\\d\\.\\d"); \\ You have to escape the "." 

答案 4 :(得分:1)

尝试:

public static void main(String[] args) {
    String x = "1.2.3";
    boolean hi = x.matches("[0-9].[0-9].[0-9]");
    //or x.matches("\\d{1,10}\\.\\d{1,10}\\.\\d{1,10}");
    //Where 1-> is the minimum digits and 10 is the maximum number of digits before .

    System.out.println(hi);
}