Номер месяца

  • 5
  • Недоступна
Временные промежутки «год» и «месяц», принятые на Терре, используются и на других планетах и объектах Федерации, в том числе — на корабле JRush. Однако зачастую стажёры экипажа внеземного происхождения путаются, когда речь заходит о земных месяцах. Поможем им: напишем программу с коллекциями, которая по имени месяца выведет его номер на экран.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (110)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Sumeria9 уровень
позавчера, 19:47
Без коллекций задача превратилась бы в четыре строчки. Плюс, нумерация в Month -- с единицы:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String monthName = reader.readLine();
int monthNumber = Month.valueOf(monthName.toUpperCase()).getValue();
System.out.format("%s is the %d month", monthName, monthNumber);
Derp 9 уровень, Санкт-Петербург
вчера, 12:11
в 5 строчек, ведь еще импорт класса идет ;)
Wladyslaw10 уровень
четверг, 08:51
Берете экземпляр Calendar, в метод сетТайм ему передаете объект Date, который парсит введенную строку по паттерну "MMMMM". После чего выводите поле Calendar.MONTH Добавляете 1, потому как в календаре месяцы с 0 нумеруются. Все Стоп, нужны были коллекции Тогда
calendar.getDisplayNames(Calendar.MONTH, Calendar.LONG, Locale.ENGLISH)
Вернет мапу с ключами-всеми месяцами в стринг и значения - номерами всех месяцов. Дальше просто читаете название месяца и по ключу ищете номер. При выводе к номеру добавляете 1 ибо с 0 месяца нумеруются
Сергей Епишков9 уровень, Санкт-Петербург
29 мая, 20:11
Друзья! Будьте внимательны, пишите название месяца правильно. Не повторяйте чужих ошибок.)))) С пятнадцатого раза из-за опечатки.
Руслана11 уровень
15 мая, 16:17
ЗАНОСИМ В МАП МЕСЯЦА (номер месяца уникальный ключ, а значение -название месяца) ВВОДИМ С КЛАВИАТУРЫ НОМЕР МЕСЯЦ итератором перебираем ключ Iterator<Map.Entry<Integer, String>> iterator = map1.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry<Integer, String> pair = iterator.next(); Integer key1 = pair.getKey(); String value = pair.getValue(); Далее if название месяца.equals(введенному с клавиатруы месяцу), то печатай (value+" is the "+key1+" month")
Ryudan18 уровень, Санкт-Петербург
27 мая, 08:11
можно вообще без циклов и без мапы, список и одно условие
Дмитрий9 уровень
4 июня, 13:04
зачем условия? String month = reader.readLine(); int index = list.indexOf(month)+1; System.out.println(month + " is the " + index + " month"); Все проще. Главное в названиях месяцев ошибку не сделать
Ryudan18 уровень, Санкт-Петербург
4 июня, 13:28
чтобы стэктрейс не разглядывать при мисклике))
Айдар8 уровень, Казань
среда, 20:10
Программа вводит с клавиатуры имя месяца а вы пишете номер месяца
ProgX11 уровень
13 мая, 15:13
Кака тебе такое Илан Маск?)
Map< String, Integer> representations = now.getDisplayNames(Calendar.MONTH, Calendar.LONG, Locale.ENGLISH)
Осталось вывести с прибавкой +1 к номеру месяца
Katsiaryna Aleinik10 уровень
10 мая, 00:37
Решила через HashMap : название месяца - ключ, а необходимый текст - значение)))) Создала отдельный метод с HashMap и просто вызвала, передав ключ. Метод вернул текстю
Константин18 уровень, Москва
7 мая, 09:13
C 10 попытки! :)) Хотя на экран выводило всё верно с первой попытки. Но что-то валидатору не нравилось. Долго искал: оказывается в мапу занёс Febrary, а нужно February !!!!111 (час убил)
24 апреля, 22:03
Внимание! Условие: выводит его номер на экран в виде: "May is the 5 month". на самом деле с кавычками ответ не засчитывает, должно быть:
May is the 5 month
lesaoni23 уровень, Москва
23 апреля, 19:33
Можно забить в коллекцию 12 месяцв и проверять есть ли введённая строка в коллекции. Валидатор принимает. (Но я ещё через toUpperCase() попробовал, интересней получается)
Adlan12 уровень
21 апреля, 07:37
Решил через Аррай лист . Один вопрос только, есть ли способ решить без добавления пустой строки в лист? Лисст начинаеться с нуля а нужно чтоб с одного.
lesaoni23 уровень, Москва
23 апреля, 19:32
System.out.println(String.format("%s is the %s month",s,list.indexOf(s) + 1));