В чем ошибка для валидатора(ругается на номер)? помогите разобраться.
и очень жду ссылки на статьи, где понятно(!) разбирается подобная работа со строками!
либо ваши примеры оптимизированного кода.
package com.javarush.task.task19.task1903;
/*
Адаптация нескольких интерфейсов
*/
import java.util.HashMap;
import java.util.Map;
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");}
public static void main(String[] args) {
IncomeData data = new IncomeData() {
@Override
public String getCountryCode() {
return "UA";
}
@Override
public String getCompany() {
return "JavaRush Ltd";
}
@Override
public String getContactFirstName() {
return "Ivan";
}
@Override
public String getContactLastName() {
return "Ivanov";
}
@Override
public int getCountryPhoneCode() {
return 38;
}
@Override
public int getPhoneNumber() {
return 123456789;
}
};
Customer asd = new IncomeDataAdapter(data);
System.out.println(((IncomeDataAdapter) asd).getPhoneNumber());
}
public static class IncomeDataAdapter implements Customer, Contact {
private IncomeData data;
public IncomeDataAdapter(IncomeData data) {
this.data = data;
}
@Override
public String getCompanyName() {
String a = this.data.getCompany();
return a;
}
@Override
public String getCountryName() {
String b = "";
for (Map.Entry<String, String> pair : countries.entrySet()) {
String a = pair.getKey();
if (a.equals(data.getCountryCode())) {
b = pair.getValue();
}
}
return b;
}
@Override
public String getName() {
String a = this.data.getContactLastName() + ", " + this.data.getContactFirstName();
return a;
}
@Override
public String getPhoneNumber() {
String a = "+" + this.data.getCountryPhoneCode();
String b = this.data.getPhoneNumber() + "";
boolean result = b.matches("\\d{10}");
if (result) {
a += b;}
else {
while (!result){ b="0"+b;result = b.matches("\\d{10}");
}
a+=b;
}
StringBuffer sb = new StringBuffer(a);
sb.insert(3,"(");
sb.insert(7,")");
sb.insert(11,"-");
sb.insert(14,"-");
a=String.valueOf(sb);
return a;
}
}
public static interface IncomeData {
String getCountryCode(); //For example: UA
String getCompany(); //For example: JavaRush Ltd.
String getContactFirstName(); //For example: Ivan
String getContactLastName(); //For example: Ivanov
int getCountryPhoneCode(); //For example: 38
int getPhoneNumber(); //For example: 501234567
}
public static interface Customer {
String getCompanyName(); //For example: JavaRush Ltd.
String getCountryName(); //For example: Ukraine
}
public static interface Contact {
String getName(); //For example: Ivanov, Ivan
String getPhoneNumber(); //For example: +38(050)123-45-67
}
}