如何将前导零添加到国家号码?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将前导零添加到国家号码?相关的知识,希望对你有一定的参考价值。
我使用预定义的电话格式来格式化国内电话号码,但返回了全国重要号码。没有前缀0.例如:
美国电话#
PhoneNumber = +16175551212 (national number is 6175551212)
pf = new PhoneFormat("(XXX) XX XXXXX", dialingCodeUS);
PhoneNumberUtil.formatByPattern(PhoneNumber, PhoneNumberFormat.NATIONAL, pf)
result: (617) 55 51212 GOOD!
IL(以色列)电话号码#
PhoneNumber = +972545551212 (national number is 0545551212)
pf = new PhoneFormat("XXX-XXX XXXX", dialingCodeUS);
PhoneNumberUtil.formatByPattern(PhoneNumber, PhoneNumberFormat.NATIONAL, pf)
result: 545551212 BAD!
Expected it to be: 054-555 1212
我不能使用其他方法只是因为此方法(formatByPattern)接受预定义的PhoneFormats
来自javadoc:PhoneNumberUtil.formatByPattern
public String formatByPattern(Phonenumber.PhoneNumber number,
PhoneNumberUtil.PhoneNumberFormat numberFormat,
List<Phonemetadata.NumberFormat> userDefinedFormats)
使用客户端定义的格式规则格式化指定格式的电话号码。请注意,如果电话号码的国家/地区呼叫代码为零,或者国家/地区呼叫代码无效,我们无法确定是否应该应用国家/地区前缀,或者如何格式化分机号码,因此我们会返回国家/地区的重要号码。没有应用格式。参数:number - 要格式化的电话号码numberFormat - 电话号码格式化为userDefinedFormats的格式 - 客户指定的格式规则返回:格式化的电话号码
但是:ぁzxswい
所以我目前的问题是找到一种方法来优雅地添加这个前导零。
有没有一种方法可以使用预定义的手机格式格式化数字,但是如预期的那样具有前导零?
答案
你的意图绝对是在号码末尾省略短划线符号吗?否则,我对它的看法(从未使用过这个包)是为了以国家方式显示以色列号码:
https://libphonenumber.appspot.com/
这会产生:
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
String pn ="+972545551212";
Phonenumber.PhoneNumber number = null;
try {
number = phoneUtil.parse(pn, "IL");
System.out.println(phoneUtil.format(number, PhoneNumberUtil.PhoneNumberFormat.NATIONAL));
} catch (NumberParseException e) {
e.printStackTrace();
}
以上是关于如何将前导零添加到国家号码?的主要内容,如果未能解决你的问题,请参考以下文章
结帐后如何将摩洛哥国家代码添加到 wp woocommerce 中的电话号码? [关闭]
如何在 Excel 中将前导零添加到固定的字母数字长度? [复制]