Hello,
Is my map initialization correct ?
Why am I not good with number format ?
package fr.codegym.task.task19.task1903;
/*
Adaptation de plusieurs interfaces
*/
import java.util.HashMap;
import java.util.Map;
public class Solution {
public static Map<String, String> countries = new HashMap<>();
static {
countries.put("UA", "Ukraine");
countries.put("US", "Etats-Unis");
countries.put("FR", "France");
}
public static void main(String[] args) {
}
public static class IncomeDataAdapter implements Customer, Contact {
private IncomeData data;
public IncomeDataAdapter(IncomeData incomeData){
this.data = incomeData;
}
@Override
public String getCompanyName() {
return data.getCompany();
}
@Override
public String getCountryName() {
return countries.get(data.getCountryCode());
}
@Override
public String getName() {
return data.getContactLastName() + ", " + data.getContactFirstName();
}
@Override
public String getPhoneNumber() {
String strNumber = Integer.toString(data.getPhoneNumber());
String prefix;
if (strNumber.startsWith("0")){
prefix = strNumber.substring(0,2);
}
else{
prefix = "0" + strNumber.substring(0,1);
String newStrNumber = "0" + strNumber;
strNumber = newStrNumber;
}
return "+" + data.getCountryCode() + "(" + prefix + ")" + strNumber.substring(3,5) + "-" + strNumber.substring(6,7) + "-" + strNumber.substring(8,9);
}
}
public static interface IncomeData {
String getCountryCode(); // Par exemple : US
String getCompany(); // Par exemple : CodeGym Ltd.
String getContactFirstName(); // Par exemple : John
String getContactLastName(); // Par exemple : Smith
int getCountryPhoneCode(); // Par exemple : 1
int getPhoneNumber(); // Par exemple : 0991234567
}
public static interface Customer {
String getCompanyName(); // Par exemple : CodeGym Ltd.
String getCountryName(); // Par exemple : Etats-Unis
}
public static interface Contact {
String getName(); // Par exemple : Smith, John
String getPhoneNumber(); // Par exemple : +1(099)123-45-67
}
}