String.format() 没有正确格式化输出
String.format() doesnt format the output correct
我有一个问题,我的输出不正确,我不知道如何解决它。
在此图片中,您可以看到页眉 Januar 2017 。 . . .推迟了一段时间。
Januar 2017 Februar 2017 Maerz 2017
So|01| |1 Mi|01| |32 Mi|01| |60
Mo|02| |2 Do|02| |33 Do|02| |61
Di|03| |3 Fr|03| |34 Fr|03| |62
Mi|04| |4 Sa|04| |35 Sa|04| |63
Do|05| |5 So|05| |36 So|05| |64
Fr|06| |6 Mo|06| |37 Mo|06| |65
我正在尝试这样做。月份名称应从工作日名称开始(短) So Mo Di Mi Do Fr Su
Januar 2017 Februar 2017 Maerz 2017
So|01| |1 Mi|01| |32 Mi|01| |60
Mo|02| |2 Do|02| |33 Do|02| |61
Di|03| |3 Fr|03| |34 Fr|03| |62
Mi|04| |4 Sa|04| |35 Sa|04| |63
Do|05| |5 So|05| |36 So|05| |64
Fr|06| |6 Mo|06| |37 Mo|06| |65
这就是我构建 monthPaper 的代码
public LinkedList<String> buildMonth(int month) {
int lengthOfMonth = calender.getLengthOfMonth(this.year, month);
LinkedList<String> monthList = new LinkedList<>();
monthList.add(String.format("%-10s",monthname[month]) + String.format("%-17s", this.year));
for (int day = 1; day <= lengthOfMonth; day++) {
int daynumber = kf.daynumber(day, month, this.year);
int weekday = kf.wochentag_im_jahr(this.year, daynumber);
String monthPlan = weekdayShort[weekday] + "|" + String.format("%02d",day) +"|\t\t\t|" +String.format("%-10s",calender.getTwoDigit(daynumber));
monthList.add(monthPlan);
}
return monthList;
}
我认为问题在于 /t
的长度在不同的系统中可能会有所不同,您应该更改日期字符串的格式。尝试这样做
System.out.println(String.format("%s|%02d|%20s%-6s", weekdayShort[weekday], day, "|", calender.getTwoDigit(daynumber)));
我有一个问题,我的输出不正确,我不知道如何解决它。
在此图片中,您可以看到页眉 Januar 2017 。 . . .推迟了一段时间。
Januar 2017 Februar 2017 Maerz 2017
So|01| |1 Mi|01| |32 Mi|01| |60
Mo|02| |2 Do|02| |33 Do|02| |61
Di|03| |3 Fr|03| |34 Fr|03| |62
Mi|04| |4 Sa|04| |35 Sa|04| |63
Do|05| |5 So|05| |36 So|05| |64
Fr|06| |6 Mo|06| |37 Mo|06| |65
我正在尝试这样做。月份名称应从工作日名称开始(短) So Mo Di Mi Do Fr Su
Januar 2017 Februar 2017 Maerz 2017
So|01| |1 Mi|01| |32 Mi|01| |60
Mo|02| |2 Do|02| |33 Do|02| |61
Di|03| |3 Fr|03| |34 Fr|03| |62
Mi|04| |4 Sa|04| |35 Sa|04| |63
Do|05| |5 So|05| |36 So|05| |64
Fr|06| |6 Mo|06| |37 Mo|06| |65
这就是我构建 monthPaper 的代码
public LinkedList<String> buildMonth(int month) {
int lengthOfMonth = calender.getLengthOfMonth(this.year, month);
LinkedList<String> monthList = new LinkedList<>();
monthList.add(String.format("%-10s",monthname[month]) + String.format("%-17s", this.year));
for (int day = 1; day <= lengthOfMonth; day++) {
int daynumber = kf.daynumber(day, month, this.year);
int weekday = kf.wochentag_im_jahr(this.year, daynumber);
String monthPlan = weekdayShort[weekday] + "|" + String.format("%02d",day) +"|\t\t\t|" +String.format("%-10s",calender.getTwoDigit(daynumber));
monthList.add(monthPlan);
}
return monthList;
}
我认为问题在于 /t
的长度在不同的系统中可能会有所不同,您应该更改日期字符串的格式。尝试这样做
System.out.println(String.format("%s|%02d|%20s%-6s", weekdayShort[weekday], day, "|", calender.getTwoDigit(daynumber)));