Номер месяца

  • 5
  • Недоступна
Временные промежутки «год» и «месяц», принятые на Терре, используются и на других планетах и объектах Федерации, в том числе — на корабле JRush. Однако зачастую стажёры экипажа внеземного происхождения путаются, когда речь заходит о земных месяцах. Поможем им: напишем программу с коллекциями, которая по имени месяца выведет его номер на экран.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (88)
  • популярные
  • новые
  • старые
Для того, что бы оставить комментарий вы должны авторизоваться
Иван14 уровень, Москва
29 ноября, 16:51
На мой взгляд, решение через Map выглядит более целесообразно, + скорость взятия значения будет O(1), в случае List O(n), поправьте если не прав
Мишаня17 уровень
13 ноября, 23:35
проще через Лист , зачем мапы совать здесь
Tyrant10 уровень
24 ноября, 13:46
Скинь мне код через Лист, гляну проще ли.
Tyrant10 уровень
24 ноября, 23:57
Ну такое... Кода немного меньше, но концовка чуть запутаннее. Спасибо.
Iuri Ostrikov22 уровень
20 октября, 05:11
Создаете карту months(key January, value 1), забираете строку с клавиатуры.
months.get(string);
string - то что забрали с клавы. Выводите то, что получили get-ом
Nathan2217722 уровень, Санкт-Петербург
18 октября, 18:55
Решил через Date(). Валидатор такой: "Используй коллеккции!" *ok.jpg* HashMap<String, String> map = new HashMap(); *валидатор.ехе*
Andrey Tkachenko15 уровень, Минск
23 августа, 07:46
Сейчас бы упороться и решить задачу через
java.time.Month
когда нужно было через массивы.. рукалицо)
Alex B13 уровень, Москва
6 сентября, 08:21
решал через Month
Антон17 уровень, Новосибирск
11 августа, 09:27
Почему не принимает??????((((( Задача не прошла тестирование! - Программа должна считывать с клавиатуры имя месяца и выводить его номер на экран по заданному шаблону. Что не так то? BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String month = reader.readLine(); Map<String, String> map = new HashMap<String, String>(); map.put("January", "January is the 1 month"); map.put("February", "February is the 2 month"); map.put("March", "March is the 3 month"); map.put("April", "April is the 4 month"); map.put("May", "May is the 5 month"); map.put("June", "June is the 6 month"); map.put("Jule", "Jule is the 7 month"); map.put("August", "August is the 8 month"); map.put("September", "September is the 9 month"); map.put("October", "October is the 10 month"); map.put("November", "November is the 11 month"); map.put("December", "December is the 12 month"); for (Map.Entry<String, String> pair : map.entrySet()) { String key = pair.getKey(); String value = pair.getValue(); if (key.toUpperCase().equals(month.toUpperCase())) System.out.println(value); }
Антон17 уровень, Новосибирск
11 августа, 09:42
все понял, из-за месяца Jyle c 7 попытки((((
witalij17635 уровень, Санкт-Петербург
19 августа, 12:22
July
Роман15 уровень
8 сентября, 13:03
не могу понять зачем здесь toUpperCase() и почему без него не проходит
Антон17 уровень, Новосибирск
9 сентября, 06:50
toUpperCase() для перевода в верхний регистр, сравниваем значения в верхнем регистре, это для того чтобы можно было вводить may, May, mAy, MAY, ну в общем чтобы вводить с клавиатуры месяц в любом регистре, а без этого метода месяц may введенный с клавиатуры и месяц May в мэпе получаются разные месяцы
Artem14 уровень, Санкт-Петербург
1 декабря, 12:18
Вместо toUpperCase() в 2-х местах проще единожды использовать equalsIgnoreCase. Я, например, использовал цикл так:
for(Map.Entry<Integer, String> search : list.entrySet()){
            if(s.equalsIgnoreCase(search.getValue())){
                System.out.println(search.getValue() + " is the " + search.getKey() + " month");
            }
        }
, где "s" - это введенное значение.
Gennadiy8 уровень, Одесса
вторник, 00:13
Как по мне так это лишнее. Если допускать, что человек введет вместо May "mAy", то тогда уже надо допускать, что он может ввести "Jyle" и т.п. и, соответственно, делать проверку на наличие подобных ошибок.
Мистер Холод9 уровень, Киев
позавчера, 19:32
Я вот также сделал. Проверку прошло. Но когда вписываешь месяц не так как прописано в ключах, то значение подтягивает null. Почему так происходит и как это обойти?
Dilitand16 уровень
31 июля, 19:46
Помогите в чем проблема, пишет что не соответствует шаблону... уже мозг сломал - с виду все четко работает. public static void main(String[] args) throws IOException { //напишите тут ваш код HashMap<String,Integer> mesac = new HashMap<String, Integer>(); mesac.put("January",1); mesac.put("Febuary",2); mesac.put("March",3); mesac.put("April",4); mesac.put("May",5); mesac.put("June",6); mesac.put("Jule",7); mesac.put("August",8); mesac.put("September",9); mesac.put("October",10); mesac.put("November",11); mesac.put("December",12); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String input = reader.readLine().toUpperCase(); for (Map.Entry<String,Integer> x: mesac.entrySet()) { if (x.getKey().toUpperCase().equals(input)) { System.out.print(x.getKey() + " is the " + x.getValue() + " month"); } } }
Andry Max35 уровень, Минск
31 июля, 20:07
та же проблема...
Andry Max35 уровень, Минск
31 июля, 20:11
ЭТО ****** чувак... разрабам по голове за такое... Почитал комменты снизу и сделал вывод таким: " May is the 5 month". Тогда прошло.
Dilitand16 уровень
31 июля, 21:18
Чет я не вкурил. А чем от моего вывода отличается?
Andry Max35 уровень, Минск
31 июля, 23:54
хаахахах сорян) даже и не обратил внимания что ты написал так) тогда не знаю
Leonid Sidorenko30 уровень
1 августа, 06:51
Вчитываемся "mesac.put("Febuary",2);" и "mesac.put("Jule",7);"
Gagarin27 уровень, Санкт-Петербург
28 августа, 12:58
У тебя Феваль тут, вместо Февраля
Павел14 уровень
29 августа, 07:38
1) Объявил map и заполнил 2) String z = in.readLine(); System.out.println(map.get(z)); все. Зачем все усложнять?
Саид Юсупов22 уровень, Grozny
25 июля, 13:32
String month = br.readLine(); for (String s : list) if (s.contains(month)) System.out.println(s);
Артем38 уровень, Москва
8 июля, 23:24
Обычные массивы не берет, хотя для месяцев самое то, и отсортирован и индекс в качестве номера подходит. Но наверное да, с точки зрения обучения HashMap интереснее будет...
NazFarr26 уровень
29 июня, 06:17
почему то валидатор принимает только карты. а условие говорит используйте коллекции. Разве
ArrayList
не входит в группу коллекции,,???
30 июля, 18:00
прошел с ArrayList