CodeGym
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
Pytanie
  • Opinie
  • O nas
Rozpocznij
Rozpocznij naukę
Rozpocznij naukę teraz
  • Wszystkie pytania
Oskar
Poziom 31
Poznań
  • 26.03.2020
  • 779widoki
  • 7komentarze

Can someone help me?, What is wrong here?

Pytania dotyczące zadania Dostosowywanie wielu interfejsów
Podstawy Java,  Poziom 9,  Lekcja 3
Dyskutowane


Dostosuj IncomeData do interfejsów Customer i Contact.
Klasa adaptera to IncomeDataAdapter.
Inicjalizuj countries przed uruchomieniem programu. Mapowanie pomiędzy kodami krajów i nazwami krajów:
UA Ukraina
US Stany Zjednoczone
FR Francja
Jeśli to konieczne, podaj numery telefonów z zerami, aby otrzymać 10 cyfr (zobacz przykłady).
Zwróć uwagę na format imion i nazwisk osób.

Wymagania:
  • Klasa Solution musi mieć publiczne statyczne pole Map<String, String> o nazwie countries.
  • Inicjalizuj pole countries w bloku statycznym w klasie Solution, korzystając z danych testowych dostarczonych w zadaniu.
  • Klasa IncomeDataAdapter musi implementować interfejsy Customer i Contact.
  • Klasa IncomeDataAdapter musi posiadać prywatne pole IncomeData o nazwie data.
  • Klasa IncomeDataAdapter musi posiadać konstruktor z parametrem IncomeData.
  • Korzystając z podpowiedzi w komentarzach do interfejsów, zaimplementuj metody interfejsów Customer i Contact w klasie IncomeDataAdapter.
package pl.codegym.task.task19.task1903; /* Dostosowywanie wielu interfejsów */ import java.util.HashMap; import java.util.Map; public class Solution { public static Map<String, String> countries = new HashMap<>(); static { countries.put("UA","Ukraina"); countries.put("US","Stany Zjednoczone"); countries.put("FR","Francja"); } public static void main(String[] args) { } public static class IncomeDataAdapter implements Customer,Contact { private IncomeData data; public IncomeDataAdapter(IncomeData data) { this.data = data; } public String getCompanyName() { return data.getCompany(); } // Na przykład: CodeGym Ltd. public String getCountryName() { String s = data.getCountryCode(); return countries.get(s); } // Na przykład: Stany Zjednoczone public String getName() { return data.getContactLastName() + ", " + data.getContactFirstName(); } // Na przykład: Smith, John public String getPhoneNumber() { String s = "+" + Integer.toString(data.getCountryPhoneCode());// +"("; String k = Integer.toString(data.getPhoneNumber()); for(int i = 0; i< k.length(); i++){ char c = k.charAt(i); //if(i==3) //s+=")"; //if(i==6 || i==8) ///s+="-"; s+=c; } for(int i = k.length(); i<10;i++) { //if(i==3) //s+=")"; //if(i==6 || i==8) //s+="-"; s+="0"; } return s; } // Na przykład: +1(099)123-45-67 } public static interface IncomeData { String getCountryCode(); // Na przykład: US String getCompany(); // Na przykład: CodeGym Ltd. String getContactFirstName(); // Na przykład: John String getContactLastName(); // Na przykład: Smith int getCountryPhoneCode(); // Na przykład: 1 int getPhoneNumber(); // Na przykład: 991234567 } public static interface Customer { String getCompanyName(); // Na przykład: CodeGym Ltd. String getCountryName(); // Na przykład: Stany Zjednoczone } public static interface Contact { String getName(); // Na przykład: Smith, John String getPhoneNumber(); // Na przykład: +1(099)123-45-67 } }
0
Komentarze (7)
  • Popularne
  • Najnowsze
  • Najstarsze
Musisz się zalogować, aby dodać komentarz
Oskar
Poziom 31 , Poznań, Polska
27 marca 2020, 10:43
stil incorrect
0
Oskar
Poziom 31 , Poznań, Polska
27 marca 2020, 10:42
public String getPhoneNumber() {
        String s = "+" + Integer.toString(data.getCountryPhoneCode()) +"(";
        String k = Integer.toString(data.getPhoneNumber());
        // For example: 99 123 45 67

        int j = 0;
        if(k.length() < 10) {
            s+="0";
            ++j;
        }
        //s = +1(0  or s= +1(

        for(int i = 0; i < k.length(); i++) {
            char c = k.charAt(i);
            s = s + Character.toString(c);

            if( (i + j) == 2)
                s = s + ")";
            if( (i + j) == 5 || (i + j) == 7)
                s = s + "-";

        }
            return s;   // Na przykład: +1(099)123-45-67
}
0
Michał
Poziom 24 , Wrocław, Poland
30 września 2020, 08:08
try:
public String getPhoneNumber() {
    String phoneCode = Integer.toString(data.getCountryPhoneCode());
    String s = "+" + phoneCode +"(";
    String k = Integer.toString(data.getPhoneNumber());
    // For example: 991234567 or 12345
    String h = k; //phone with zero

    //add zero before number (to 10 chars)
    for (int i = 0; i < (10 - k.length()); i++) {
        h = "0" + h;
    }

    String result = s + h.substring(0, 3) + ")"
            + h.substring(3, 6) + "-"
            + h.substring(6, 8) + "-"
            + h.substring(8, 10);

    return result;   // Na przykład: +1(099)123-45-67
}
0
Guadalupe Gagnon
Poziom 37 , Tampa, United States
26 marca 2020, 19:53
The getPhoneNumber() method should return a string that looks like +1(099)123-45-67. The String returned by the method in this code returns looks like +19912345670.
0
Misiu
Poziom 41 , Gdansk, Poland
15 kwietnia 2020, 10:20
991234567 "should return a string that looks like (099)123-45-67" so 123456 should return a string that looks like ...???
0
Guadalupe Gagnon
Poziom 37 , Tampa, United States
15 kwietnia 2020, 13:24
(000)012-34-56
+1
Misiu
Poziom 41 , Gdansk, Poland
15 kwietnia 2020, 13:42
Thank you :) and 123 --> (000)000-01-23 ? and 1 --> (000)000-00-01 ? and 0 --> (000)000-00-00 ? (anybody saw such a number?)
+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.