CodeGym
Promocja
CodeGym University
Nauka
Kurs
Zadania
Ankiety & Quizy
Gry
Pomoc
Harmonogram kopniaków w tyłek
Społeczność
Użytkownicy
Forum
Czat
Artykuły
Historie sukcesu
Aktywność
Opinie
Subskrypcje
Jasny motyw
Rozpocznij naukę teraz
  • Wszystkie pytania
Misiu
Poziom 41
Gdansk
  • 14.02.2020
  • 916widoki
  • 4komentarze

Right output, no validation

Pytania dotyczące zadania Funkcjonalność to nie wszystko!
Składnia Java,  Poziom 10,  Lekcja 11
Rozwiązane

Zadanie: Program wczytuje parę z klawiatury (liczbę i ciąg) i wyświetla ją na ekranie.
Nowe zadanie: Program wczytuje parę z klawiatury (liczbę i ciąg) i umieszcza je w HashMap.
Wprowadzenie pustego ciągu oznacza koniec wprowadzania danych.
Liczby mogą się powtarzać.
Ciągi są zawsze unikalne.
Nie możesz dopuścić, aby wprowadzane dane zostały utracone!
Następnie program powinien wyświetlić na ekranie zawartość HashMap.
Każdą parę w nowej linii.

Przykładowe wejście:
1
Ala
2
Ma
1
Kota

Przykładowy wynik:
1 Ala
2 Ma
1 Kota

Wymagania:
  • Program musi odczytywać dane z klawiatury.
  • Program powinien wyświetlać tekst na ekranie.
  • W metodzie main zadeklaruj zmienną HashMap i natychmiast ją zainicjalizuj.
  • Program powinien umieszczać w HashMap pary wczytywane z klawiatury.
  • Program powinien wyświetlać zawartość HashMap zgodnie z warunkami zadania. Klucz i wartość powinny być oddzielone spacją. Każda wartość powinna być wyświetlona w nowej linii.
package pl.codegym.task.task10.task1019; import java.io.*; import java.util.HashMap; import java.util.Map; /* Funkcjonalność to nie wszystko! */ public class Solution { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); HashMap<String, Integer> map = new HashMap<String, Integer>(); int id = 0; String imie = null; while (true) { String sId = reader.readLine(); if (sId == null) break; id = Integer.parseInt(sId); imie = reader.readLine(); if (imie == null) break; map.put(imie, id); } if (imie == null) map.put("", id); for (Map.Entry<String, Integer> para : map.entrySet()) { imie = para.getKey(); id = para.getValue(); System.out.println("Id=" + id + " Imię=" + imie); //System.out.println(id + " " + imie); } } }
0
Komentarze (4)
  • Popularne
  • Najnowsze
  • Najstarsze
Musisz się zalogować, aby dodać komentarz
Enid
Poziom 12 , Lodz, Poland
23 kwietnia 2020, 14:55
I had a very similar solution but struggled with the last requirement just like you. Although what the program prints looked like the correct output, my program wouldn't stop after passing an empty string. I could pass another pair after that and it would override the first pair in the map. I conclude what makes a change is the last
if (imie == null)
    map.put("", id);
that is outside the while loop. Am I right? I still don't understand why we can't add that pair (map.put("", id)) followed up by the break; inside the while loop. Why the program keeps running?
0
Misiu
Poziom 41 , Gdansk, Poland
23 kwietnia 2020, 16:07
It is possible to remove last IF. Try this: if (imie.equals("")) { //empty string map.put(imie, id); break; } map.put(imie, id);
0
Guadalupe Gagnon
Poziom 37 , Tampa, United States
14 lutego 2020, 20:18rozwiązanie
https://codegym.cc/help/6910
+4
Misiu
Poziom 41 , Gdansk, Poland
14 lutego 2020, 23:24
sId.equals("") gave me the right solution. Also I had to uncomment last line of my code and comment the line before (the line given by CodeGym). I wonder if that was intencional... Thank you Master :)
+1
Nauka
  • Rejestracja
  • Kurs Java
  • Pomoc w Zadaniach
  • Cennik
  • Projekty Gier
  • Składnia Java
Społeczność
  • Użytkownicy
  • Artykuły
  • Forum
  • Czat
  • Historie Sukcesu
  • Aktywność
  • Affiliate Program
Firma
  • O nas
  • Kontakt
  • Opinie
  • Pokój prasowy
  • CodeGym dla EDU
  • FAQ
  • Wsparcie
CodeGym CodeGym to internetowy kurs uczący od podstaw programowania w języku Java. Ten kurs to doskonały sposób na opanowanie języka Java dla początkujących. Zawiera pond 1200 zadań z możliwością natychmiastowej weryfikacji oraz niezbędny zakres teorii na temat podstaw języka Java. Aby pomóc Ci odnieść sukces w nauce, przygotowaliśmy również zestaw elementów motywacyjnych: quizy, projekty programistyczne, artykuły na temat efektywnego uczenia się i kariery programisty Java.
Obserwuj nas
Język interfejsu
Programistą Się Nie Rodzi, Programistą Się Zostaje © 2023 CodeGym
MastercardVisa
Programistą Się Nie Rodzi, Programistą Się Zostaje © 2023 CodeGym
This website uses cookies to provide you with personalized service. By using this website, you agree to our use of cookies. If you require more details, please read our Terms and Policy.