我正在使用Google的libphonenumber库来验证和格式化Java应用程序中的电话号码。
以下是我使用的代码:
String phoneNumberE164Format = "3365440901";
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
PhoneNumber phoneNumberProto = phoneUtil.parse(phoneNumberE164Format, "US");
phoneNumberE164Format = phoneUtil.formatByPattern(phoneNumberProto,
PhoneNumberFormat.INTERNATIONAL, ******);
方法签名是这样的:
public java.lang.String formatByPattern(PhoneNumber number,
PhoneNumberUtil.PhoneNumberFormat numberFormat,
java.util.List<NumberFormat> userDefinedFormats);
现在我不明白应该为第三个参数输入什么。
我希望格式如下所示:
+1.410.218.9999 OR
+1-210-125-9999
答案 0 :(得分:1)
以下代码将任何有效的电话号码格式化为此问题中指定的格式:
NumberFormat newNumFormat = new NumberFormat();
newNumFormat.pattern = "(\\d{3})(\\d{3})(\\d{4})";
newNumFormat.format = "$1-$2-$3";
List<NumberFormat> newNumberFormats = new ArrayList<NumberFormat>();
newNumberFormats.add(newNumFormat);
String formatted = phoneUtil.format(phoneNumberProto, PhoneNumberFormat.RFC3966).substring(4);