以下java代码将从1开始打印数字1-10。如何使用相同的代码结构在1月,2月,3月等一次打印出一年中的所有月份?
public class s {
public static void main(String[] args) {
for(int i = 1; i <= 10; i++) {
System.out.println(i);
}
}
}
答案 0 :(得分:5)
如果你想继续使用java api:
public static void main(final String[] args) {
// java 8
Arrays.stream(Month.values())
.forEach(System.out::println);
// java < 8
for (final Month month : Month.values()) {
System.out.println(month);
}
}
答案 1 :(得分:1)
如果你想以旧时尚的方式做到这一点,并且有更多的动手来学习数组:
String[] months = new String[] { "January", "February", "March" };
for (int i = 0; i < months.length; i++) {
System.out.println(months[i]);
}
或者更简洁一点:
for (String month : months) {
System.out.println(month);
}
您可以了解有关数组的更多信息,并查看documentation中的一些教程。
答案 2 :(得分:1)
Month
best correct Answer is by staszek巧妙地使用Streams。这是相同的想法,但使用老式语法而不是Streams,加上一些评论。
Month
enum定义了十几个实例,一年中每月一个,1月至12月的编号为1-12。 Month.getValues
方法返回所有12个实例的数组。我们可以使用Java语法为“增强的for
循环”循环该数组,也称为“for-each”。
您可以通过getDisplayName
方法询问当月的本地化名称。为缩写的长度指定TextStyle
,为翻译中使用的人类语言和文化规范指定Locale
。
TextStyle ts = TextStyle.FULL;
Locale l = Locale.CANADA_FRENCH;
for ( Month month : Month.values () ) {
int monthNumber = month.getValue (); // 1-12.
String monthName = month.getDisplayName ( ts , l );
System.out.println ( "month: " + month + " | monthNumber: " + monthNumber + " | monthName: " + monthName );
}
month: JANUARY | monthNumber: 1 | monthName: janvier
month: FEBRUARY | monthNumber: 2 | monthName: février
month: MARCH | monthNumber: 3 | monthName: mars
month: APRIL | monthNumber: 4 | monthName: avril
month: MAY | monthNumber: 5 | monthName: mai
month: JUNE | monthNumber: 6 | monthName: juin
month: JULY | monthNumber: 7 | monthName: juillet
month: AUGUST | monthNumber: 8 | monthName: août
month: SEPTEMBER | monthNumber: 9 | monthName: septembre
month: OCTOBER | monthNumber: 10 | monthName: octobre
month: NOVEMBER | monthNumber: 11 | monthName: novembre
month: DECEMBER | monthNumber: 12 | monthName: décembre
请参阅Oracle Tutorials:
java.time框架内置于Java 8及更高版本中。这些类取代了麻烦的旧日期时间类,例如java.util.Date
,.Calendar
和&amp; java.text.SimpleDateFormat
现在位于Joda-Time的maintenance mode项目建议迁移到java.time。
要了解详情,请参阅Oracle Tutorial。并搜索Stack Overflow以获取许多示例和解释。
从哪里获取java.time类?
ThreeTen-Extra项目使用其他类扩展java.time。该项目是未来可能添加到java.time的试验场。您可以在此处找到一些有用的课程,例如Interval
,YearWeek
,YearQuarter
和more。
答案 3 :(得分:0)
你会试试吗
String[] months = new DateFormatSymbols().getMonths();
for (int i = 0; i <12; i++) {
System.out.println("month = " + months[i]);
}
答案 4 :(得分:0)
试试这个解决方案:
String[] months = new DateFormatSymbols().getMonths();
for(String singleMonth: months){
System.out.println(singleMonth);
}