Java中有条件的if语句可以在多行上

时间:2014-03-30 18:33:14

标签: java

我的程序中有很长的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)))

我只是想确保包含日期的字符串是我指定的格式。

3 个答案:

答案 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作为孔字符串,而不是验证每个字符。