如何解析java中的范围输入

时间:2015-08-24 16:11:28

标签: java

我想用Java解析一系列数据(例如100-2000)。这段代码是否正确:

    String patternStr = "^(\\\\d+)-(\\\\d+)$";
    Pattern pattern = Pattern.compile(patternStr);
    Matcher matcher = pattern.matcher(inputStr);
    if(matcher.find()){
     // Doing some parser
    }

1 个答案:

答案 0 :(得分:1)

不,你是双倍(好吧,四倍) - 数字。

应该是:"^(\\d+)-(\\d+)$"

含义:

  • 开始输入:^
  • 第1组:1+个数字:(\\d+)
  • 连字符文字:-
  • 第2组:1+位数:(\\d+)
  • 输入结束:$

备注

这些组对反向引用很有用。在这里你没有使用,所以你可以围绕\\d+表达式抛弃括号。

您正在解析此示例中范围的表示

如果你想要一个实际的范围类,你可以使用[min-max]成语,其中“min”和“max”是数字,例如[0-9]

正如安德烈亚斯所提到的,如果你想匹配的话,你可以使用String.matches而不是Pattern - Matcher成语和^$全部投入。