我正在使用 libphonenumber 从给定字符串中提取电话号码,但它无法提取带有“+34 (0)”前缀的号码(+34 前缀工作正常)。它可以与其他扩展一起正常工作(即:- +38 (0) )。看起来它与 +34 和 (0) 模式相结合。以下是代码示例。有人以前经历过这种情况吗?
String content = someString + "+34 (0)xxx - xxxxxx" + someString;
PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
Iterable<PhoneNumberMatch> intlNumbers = phoneNumberUtil.findNumbers(content, null);
最佳答案
您可以使用parse
方法然后获取nationalNumber
和countryCode
public static void main(String[] args) throws NumberParseException {
String content = "+34 (0)123 - 456789";
PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
PhoneNumber phoneNumber =phoneNumberUtil.parse(content, null);
System.out.println("Phone Number = "+phoneNumber.getNationalNumber());
System.out.println("Country Code = "+phoneNumber.getCountryCode());
}
结果
电话号码 = 123456789
国家/地区代码 = 34
关于java - libphonenumber 库不提取前缀为 +34 (0) 的电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59964932/