检查用户输入是否合适

时间:2014-10-18 12:28:13

标签: java regex javafx pattern-matching

我想做的是检查用户输入是否合适,如果是,则使用用户输入,否则抛出异常。

对于拟合,只能有一个真正的输入,其形式为:x,y;x,y;x,y;x,y其中x >= 0 & y > 0。 (xy在每个逗号分隔符中不必具有相同的值,例如,真输入为0,1;2,3;4,5;6,7)如果用户键入了其他内容,例如"asd"或{ {1}}(缺少一个x,y),他得到了例外。我想我可以处理异常抛出,但问题是我不知道如何检查用户输入是否合适。我不知道在这里提供我的代码是否有必要,因为检查部分还没有在我的代码中,而且其他任何东西都不重要。

要求代码,不知道原因是什么,但为快速示例创建了一些代码:

0,1;2,3;4,5

2 个答案:

答案 0 :(得分:0)

使用regexp

if (inputText.matches("[0-9]+,[1-9]+[0-9]*(?:;[0-9]+,[1-9]+[0-9]*){3}"))
{
    // do things
}    

答案 1 :(得分:0)

从您的测试用例0,1;2,3;4,5开始,定义了一些你的(x“)将由一个整数序列的零或不整数零组成。这将是:

(?:0|[1-9]\d*+)

从那里你可以量化一个子模式,重复“x,y”部分的其余部分:

(?:0|[1-9]\d*+),[1-9]\d*+(?:;(?:0|[1-9]\d*+),[1-9]\d*+){3}

这是regex demo