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