如何使用PhoneNumberUtils库将电话号码格式化为没有国家前缀的国家格式?

时间:2017-01-22 22:57:01

标签: android libphonenumber phonenumberutils

我尝试将之前的E164格式的电话号码格式化为国家格式而没有国家前缀号码,我使用PhoneNumberUtils来执行此操作:

public static String getNationalPhone(String phoneE164Formatted) {
    PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
    String phoneNumber = phoneE164Formatted;
    try {
        Phonenumber.PhoneNumber numberProto = phoneUtil.parseAndKeepRawInput(phoneE164Formatted, "");
        phoneNumber = phoneUtil.format(numberProto, PhoneNumberUtil.PhoneNumberFormat.NATIONAL);
    } catch (NumberParseException e) {
        e.printStackTrace();
    }

    return phoneNumber;
}

使用该代码,我获得了我不想要的国家前缀。例如,格式化此数字" + 526143342293"国家格式给了我这样的结果:" 01 614 334 22 93",其中" 01"它是我想要压制的东西。

1 个答案:

答案 0 :(得分:-1)

https://github.com/brick/phonenumber/blob/master/src/PhoneNumber.php

这些答案在php中,你可以转换成你自己的。

public function getCountryCode()
{
    return (string) $this->phoneNumber->getCountryCode();
}

转换上面的代码将获得所需格式的国家号码。