2

我有一个电话号码和一个与之关联的ISO 国家代码。例如,CA 代表加拿大,US 代表美国,GB 代表英国。

电话号码可能不仅仅包含区号和您的电话号码。

libphonenumber提供确定电话号码是否有效的功能,给定国家代码,所以我认为应该有一种方法来规范它。

该库是否为我提供了一种将其转换为可以正确区分拨号代码、区号和电话号码本身的对象的方法?例如:给定一个英国电话号码的形式+44 20 xxxx xxxx,我希望它与和44分开20xxxx xxxx

我看到了一些规范化方法,但它们只是删除了连字符、括号和空格等字符。

4

1 回答 1

8

看来libphonenumber PhoneNumberUtil 格式方法会做你想要的。

String swissNumberStr = "044 668 18 00";
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
try {
    PhoneNumber swissNumberProto = phoneUtil.parse(swissNumberStr, "CH");
} catch (NumberParseException e) {
    e.printStackTrace();
}

// Produces "044 668 18 00"
System.out.println(phoneUtil.format(swissNumberProto, 
    PhoneNumberFormat.NATIONAL));
于 2014-02-13T17:18:49.297 回答