如何检查用户输入是否有效?

时间:2014-05-13 06:38:38

标签: java jax-rs

我有2个QueryParam的

日期=“YYYY-MM-DD” 国家=“3个字母”

如果输入无效,我需要返回400错误,我不必检查日期是否可能日期或该国家不存在,我必须检查格式是否有效。那个国家总是3个字母而不是一些奇怪的符号,日期是(number-number-number-number --- number-number --- number-number)。

2 个答案:

答案 0 :(得分:0)

我现在能想到的一个非常天真的解决方案如下。如果您不习惯使用正则表达式,那么您可以直接尝试使用string.split()或任何基于某个字符进行拆分的等效java方法。之后,尝试使用Integer.parseInt()检查所有三个拆分是否都是有效数字。对于字母,您可以使用简单的ascii值比较来检查每个字符是否在您需要的范围内。但是,正则表达式总会更好。

答案 1 :(得分:0)

您可以使用String.split()函数为您提供一个字符串数组(在您的情况下为3个字符串),然后使用Integer.parseInt()按照您的需要比较此数组中的值 例如:

String date = "2010-02-12";
String arr[] = date.split("-");
int day = Integer.parseInt(arr[2]);
if(day < 1 || day > 31)
 System.out.println("Not a good day !");

此代码未经过测试,但会告诉您它是如何工作的 请注意,Integer.parseInt()可以抛出NumberFormatException,因此捕获它然后可以引发错误400.
它不如正则表达式好,但它会起作用。