我的程序中有很长的if语句,我想知道是否有办法简单地将条件继续到下一行,这样它就不会永远延伸。
这是我的陈述:
if (Character.isDigit(enrollDate.charAt(0)) && Character.isDigit(enrollDate.charAt(1)) && Character.isDigit(enrollDate.charAt(3)) && Character.isDigit(enrollDate.charAt(4)) && Character.isDigit(enrollDate.charAt(6)) && Character.isDigit(enrollDate.charAt(7)) && Character.isDigit(enrollDate.charAt(8)) && Character.isDigit(enrollDate.charAt(9)))
我只是想确保包含日期的字符串是我指定的格式。
答案 0 :(得分:2)
是
但为什么不尝试呢?
if (
Character.isDigit(enrollDate.charAt(0)) &&
Character.isDigit(enrollDate.charAt(1)) &&
Character.isDigit(enrollDate.charAt(3)) &&
Character.isDigit(enrollDate.charAt(4)) &&
Character.isDigit(enrollDate.charAt(6)) &&
Character.isDigit(enrollDate.charAt(7)) &&
Character.isDigit(enrollDate.charAt(8)) &&
Character.isDigit(enrollDate.charAt(9))
)
无论如何,您可以尝试改进此if
答案 1 :(得分:1)
如上所述,您绝对可以将if
分成多行。
...然而
您正在使用的格式如下:
\d\d[-/]\d\d[-/]\d\d\d\d
也就是说,在破折号或斜线之前有两个数字,后跟破折号或斜线前面的两个其他数字,后跟四个数字。
我99%确定这是某种日期。
如果 案例,那么可以采用更简单的方法:DateFormat#parse
。
parse
可能会抛出ParseException
,因此您可以将其硬连接到方法中......
public static void main(String[] args) throws ParseException {
DateFormat fmt = new SimpleDateFormat("mm-dd-yyyy");
System.out.println(fmt.parse("03-30-2014"));
}
...或者在它周围写一个try-catch块。
public static void main(String[] args) {
DateFormat fmt = new SimpleDateFormat("mm-dd-yyyy");
try {
System.out.println(fmt.parse("03-30-2014"));
} catch (ParseException e) {
e.printStackTrace();
}
}
后者可能会让您有机会从灾难性的解析尝试中恢复过来。
答案 2 :(得分:0)
我同意Marco,是的,你可以使用多行,但你需要改善这种情况。 enrollDate是一个字符串吗?您可以使用int tryparse作为孔字符串,而不是验证每个字符。