package com.javarush.task.task08.task0829;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/*
Модернизация ПО
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
// List of city
Map<String, String> map = new HashMap<>();
while (true) {
if (reader.readLine().isEmpty()) break;
String city = reader.readLine(); // sozdal Map i dobavil gorod i Familiyu
String family = reader.readLine();
map.put(city, family);
}
String checkCity = reader.readLine();
for (Map.Entry<String, String> entry : map.entrySet()) {
if (checkCity.equals(entry.getKey())) { // proverka estli
// vvedenniy gorod sovpodaet s gorodom
// iz spiska vivoju familiyu
System.out.println(entry.getValue());
}
}
}
}
ilgar
16 уровень
gde oshibka
Обсуждается
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Семён
20 апреля 2019, 19:44
Эта программа в цикле считывает строку с консоли 3 раза:
1) просто считывает и ничего с ней не делает
2) считывает и записывает ключ в словарь
3) считывает и записывает значение в словарь
0
Askar
20 апреля 2019, 08:00
String checkCity = reader.readLine(); - Зачем вам это? повторно считывать из буфера? Проблему вызывает этот отрезок кода
0
Стас Пасинков Software Developer в Zipy Master
20 апреля 2019, 03:21
мне кажется у вас ошибка тут
ошибка логическая. вы читаете данные, убеждаетесь что они не пустые, но никуда их не сохраняете. и когда дальше читаете (как вам кажется) город - у вас уже туда прилетит вовсе не город, а фамилия 0
ilgar
20 апреля 2019, 04:33
a razve mojno soxronit v Map otdelno Key i Value? imeyu vvidu netu opchii dobavit tolko Key i podojdat vvoda Value. ili est ?
0
Стас Пасинков Software Developer в Zipy Master
20 апреля 2019, 13:41
во-первых, можно. можно сохранить ключ, null а потом когда получили уже значение - перезаписать парой этот же ключ, значение
во вторых, вам в этой задаче и не надо таким гемором заниматься.
вам достаточно перенести иф ниже. сначала считали город в переменную. потом проверили что город не пустой. после чего считали в другую переменную фамилию. потом снова ифом проверили что фамилия не пуста. если все ифы были пройдены и вы не вылетели из цикла - последним делом сохраняете эту парочку город, фамилия в мапу.
ваша проблема в том, что каждый вызов reader.readLine() считывает данные с консоли. поэтому если вы их никуда не сохранили - вы их потеряли
+1