Как так?
подсказка :
Метод getDialString() должен вернуть строку состоящую из надписи callto://+ и телефонного номера из которого убраны все символы кроме цифр(смотри примеры). Номер телефона нужно взять из getPhoneNumber() объекта сontact.
package com.javarush.task.task19.task1905;
import java.util.HashMap;
import java.util.Map;
/*
Закрепляем адаптер
UA Ukraine
RU Russia
CA Canada
*/
public class Solution {
public static Map<String,String> countries = new HashMap<String,String>();
static {
countries.put("UA", "Ukraine");
countries.put("RU", "Russia");
countries.put("CA", "Canada");
}
/*
String getCountryCode(); //example UA
String getCompany(); //example JavaRush Ltd.
String getContactFirstName(); //example Ivan
String getContactLastName(); //example Ivanov
String getDialString(); //example callto://+380501234567
*/
public static void main(String[] args) {
Customer customer = new Customer() {
@Override
public String getCompanyName() {
return "JavaRush Ltd.";
}
@Override
public String getCountryName() {
return "Ukraine";
}
};
Contact contact = new Contact() {
@Override
public String getName() {
return "Ivanov, Ivan";
}
@Override
public String getPhoneNumber() {
return "38(050)123-45-67";
}
};
DataAdapter da = new DataAdapter(customer, contact);
System.out.println(da.getCountryCode());
System.out.println(da.getCompany());
System.out.println(da.getContactFirstName());
System.out.println(da.getContactLastName());
System.out.println(da.getDialString());
}
public static class DataAdapter implements RowItem{
private Customer customer;
private Contact contact;
public DataAdapter(Customer customer, Contact contact) {
this.contact = contact;
this.customer = customer;
}
@Override
public String getCountryCode() {// готово
for (Map.Entry<String,String> entry : countries.entrySet())
if (customer.getCountryName().equals(entry.getValue()))
return entry.getKey();
return null;
} // готово
@Override
public String getCompany() {
return customer.getCompanyName();
} // готово
@Override
public String getContactFirstName() {
String [] s = contact.getName().split(" ");
return s[1];////example Ivanov, Ivan
} // готово
@Override
public String getContactLastName() {
String [] s = contact.getName().split(",");
return s[0];
} // готово
@Override
public String getDialString() {
String s = contact.getPhoneNumber();
String num = "";
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == '-' | s.charAt(i) == '(' | s.charAt(i) == ')')
{}
else num = num + s.charAt(i);
}
return "callto://+" + num; //"+38(050)123-45-67"
}
}
public static interface RowItem {
String getCountryCode(); //example UA
String getCompany(); //example JavaRush Ltd.
String getContactFirstName(); //example Ivan
String getContactLastName(); //example Ivanov
String getDialString(); //example callto://+380501234567
}
public static interface Customer {
String getCompanyName(); //example JavaRush Ltd.
String getCountryName(); //example Ukraine
}
public static interface Contact {
String getName(); //example Ivanov, Ivan
String getPhoneNumber(); //example +38(050)123-45-67 or +3(805)0123-4567 or +380(50)123-4567 or ...
}
}