【发布时间】:2014-06-05 22:18:30
【问题描述】:
我应该如何更改 getPhoneNumber 中的代码才能正常工作,知道吗? 这就是我最终应该得到的 +38(050)123-45-67。 38 是国家代码,这是电话号码 501234567,但您必须在号码开头输入 0 才能获得 10 个号码,如这里 (>0
public String getPhoneNumber()
{
return String.format("+%d(%2$s)%3$s-%4$s-%5$s", 38,
String.format("%010d", 501234567).substring(0, 3),
String.format("%010d", 501234567).substring(3, 6),
String.format("%010d", 501234567).substring(6, 8),
String.format("%010d", 501234567).substring(8));
}
完整的代码。
public class Solution {
public static Map<String,String> countries = new HashMap<String,String>();
public static class IncomeDataAdapter implements Customer, Contact, IncomeData
{
IncomeData incomeData;
public IncomeDataAdapter(IncomeData incomeData)
{
countries.put("UA","Ukraine");
countries.put("RU", "Russia");
countries.put("CA", "Canada");
this.incomeData = incomeData;
}
@Override
public String getName()
{
return incomeData.getContactLastName()+ incomeData.getContactFirstName();
}
@Override
public String getPhoneNumber()
{
return String.format("+%d(%2$s)%3$s-%4$s-%5$s", 38,
String.format("%010d", 501234567).substring(0, 3),
String.format("%010d", 501234567).substring(3, 6),
String.format("%010d", 501234567).substring(6, 8),
String.format("%010d", 501234567).substring(8));
}
@Override
public String getCompanyName()
{
return incomeData.getCompany();
}
@Override
public String getCountryName()
{
return countries.get(incomeData.getCountryCode());
}
@Override
public String getContactFirstName()
{
return "Ivan";
}
public IncomeData getIncomeData()
{
return incomeData;
}
@Override
public String getCountryCode()
{
return "UA";
}
@Override
public String getCompany()
{
return "JavaRush Ltd.";
}
@Override
public String getContactLastName()
{
return "Ivanov";
}
@Override
public int getCountryPhoneCode()
{
return 38;
}
}
public static interface IncomeData {
String getCountryCode();
String getCompany();
String getContactFirstName();
String getContactLastName();
int getCountryPhoneCode();
void getPhoneNumber();
}
public static interface Customer {
String getCompanyName();
String getCountryName();
}
public static interface Contact {
String getName();
String getPhoneNumber();
}
}
【问题讨论】:
-
这段代码很混乱。您是否考虑过通过声明变量来排除所有重复项?
-
我刚刚开始学习如何使用适配器
-
@Sotirios Delimanolis,它出现在 getPhoneNumber
-
没有错误。 xDD方法有问题,我不知道该怎么办
-
@Sotirios Delimanolis,“尝试使用不兼容的类型”
标签: java regex return substring