Java初学者问题 - String.format

Rav*_*vin 1 java formatting

当我在另一个类中调用displayTime12hrclock方法时,它拒绝打印出AM或PM.我无法理解为什么.

public class Tuna {


    private int hour;
    private int minute;
    private int second;



    public void setTime(int h, int m, int s){
        hour = h;
    minute = m;
    second = s;

        hour = ((h>= 0 && h <=24 ? h:0));
        minute = ((m>= 0 && m <=60 ? m:0));
        second = ((s>= 0 && s <=60 ? s:0));

    }

    public String displayTime(){
        return String.format("%02d:%02d:%02d", hour,minute,second);

    }

    public String displayTime12hrclock(){
    return String.format("%d:%02d:%02d", ((hour==0 || hour ==12)?12:hour%12), minute, second, (hour >=12)? "AM":"PM");

    }

}
Run Code Online (Sandbox Code Playgroud)

fyr*_*fyr 5

因为您传递4个参数并且仅以您的格式评估3个参数.

"%d:%02d:%02d" <- here are only 3 parameters referenced
Run Code Online (Sandbox Code Playgroud)