如果输入满足所需条件,为什么忽略if语句?

时间:2017-08-10 14:48:16

标签: java string

我正在生成一个代码,该代码从用户那里获取AM / PM格式并以24小时格式提供输出。该程序适用于所有输入,除非输入时间范围在" 00:00:00 AM"至" 12:00:00 PM"(独家)。

    String[] time = s.split(":");
    int hours = Integer.parseInt(time[0]);
    int minutes = Integer.parseInt(time[1]);
    if(s.endsWith("AM")){
        time[2] = time[2].replace("AM","");
    }
    if(s.endsWith("PM")){
        time[2] = time[2].replace("PM","");
        if(hours != 12)hours+=12;
    }
    int seconds = Integer.parseInt(time[2]);

    String hh,mm,ss;
    if(hours < 10 && s.endsWith("AM")){
        hh = "0"+Integer.toString(hours);
    }
    if(hours == 12 && s.endsWith("AM")){
        hh = "00";
    }else{
        hh = Integer.toString(hours);
    }

每当我像上午6:05:30那样输入输入时,hh会返回字符串&#34; 6&#34;但PM格式同时返回&#34; 06&#34;。

1 个答案:

答案 0 :(得分:0)

要回答您的问题,您在else语句的最后一个块中省略了if语句:

if(hours < 10 && s.endsWith("AM")){
    hh = "0"+Integer.toString(hours);
}
else // This one
if(hours == 12 && s.endsWith("AM")){
    hh = "00";
}else{
    hh = Integer.toString(hours);
}