2016-10-06 1 views
0

Следующий код java будет печатать номера 1- 10, начиная с 1. Как я могу использовать эту же структуру кода для печати всех месяцев года только один раз, так что январь , Февраль, март и т. Д.?Java для цикла для печати каждый месяц года

public class s { 
    public static void main(String[] args) { 
     for(int i = 1; i <= 10; i++) { 
      System.out.println(i);   
     } 
    } 
} 
+3

Ну, для одного есть 12 месяцев в году, поэтому вам придется немного его отредактировать. Что вы пробовали до сих пор, помимо этого цикла? –

+0

вы можете сохранить имя месяца в массив и использовать простой 'for' для печати месяцев. –

ответ

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.

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); 
    } 
} 
+3

Судя по содержимому OP, потоков может быть немного. –

0

Вы бы попробовать это

String[] months = new DateFormatSymbols().getMonths(); 
for (int i = 0; i <12; i++) { 
    System.out.println("month = " + months[i]); 
} 
0

Попробуйте это решение:

String[] months = new DateFormatSymbols().getMonths(); 
    for(String singleMonth: months){ 
     System.out.println(singleMonth); 
    } 
0

Month

best correct Answer is by staszek делает умное использование потоков. Вот та же идея, но в старомодном синтаксисе вместо Streams, плюс некоторые комментарии.

Monthenum определяет дюжину экземпляров, по одному в месяц в году, пронумерованных 1-12 за январь-декабрь. Метод Month.getValues возвращает массив из всех двенадцати экземпляров. Мы можем связать этот массив с использованием синтаксиса Java для «расширенного цикла for», также известного как «для каждого».

Вы можете запросить локализованное название месяца с помощью метода 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.tim e

Рамка java.time встроена в Java 8 и более поздних версий. Эти классы вытесняют неприятные старые классы времени, такие как java.util.Date, .Calendar, & java.text.SimpleDateFormat.

Проект Joda-Time, теперь в maintenance mode, советует перейти на java.time.

Чтобы узнать больше, см. Oracle Tutorial.И поиск Stack Overflow для многих примеров и объяснений.

Где получить классы java.time?

  • Java SE 8 и SE 9, а затем
    • Встроенный.
    • Часть стандартного Java API с объединенной реализацией.
    • Java 9 добавляет некоторые незначительные функции и исправления.
  • Java SE 6 и SE 7
    • Большая часть функциональности java.time будет обратно портирован на Java 6 & 7 в ThreeTen-Backport.
  • Android
    • ThreeTenABP Проект адаптирует ThreeTen-Backport (как упоминалось выше) для Android специально.
    • См. How to use….

Проект ThreeTen-Extra расширяет java.time с дополнительными классами. Этот проект является доказательством возможных будущих дополнений к java.time. Здесь вы можете найти полезные классы, такие как Interval, YearWeek, YearQuarter и more.

Смежные вопросы