【问题标题】:How to add leading zero to national number?如何将前导零添加到国家号码?
【发布时间】:2019-02-10 16:07:24
【问题描述】:

我正在使用预定义的电话格式来格式化国家电话号码,但返回了国家重要号码。不以 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)

使用客户端定义的格式规则以指定格式格式化电话号码。请注意,如果电话号码有国家呼叫 零代码或其他无效的国家/地区呼叫代码,我们不能 算出是否应该有国家前缀之类的事情 应用了,或者如何格式化扩展,所以我们返回国家 没有应用格式的重要数字。参数:数字 - 要格式化的电话号码 numberFormat - 电话的格式 数字应格式化为 userDefinedFormats - 格式化规则 由客户指定返回:格式化的电话号码

演示:https://libphonenumber.appspot.com/

所以我当前的问题是找到一种方法来添加这个前导零 优雅的方式。

有没有一种方法可以使用预定义的电话格式来格式化数字,并按预期使用前导零?

【问题讨论】:

  • 如果您清楚地 说明电话号码的规则,将会有所帮助。也许这些信息隐藏在您的问题中,但并不是那么明显(至少对我来说不是)。
  • 我只是想有一个优雅的方式来使用这个谷歌图书馆为我的电话号码添加一个前导号码,我提到了一个例子,请看看
  • 哪些规则/输入应该和不应该添加前导零?
  • 你说的是格式和模式吗?
  • 我放弃了。你难倒我。

标签: java formatting internationalization phone-number libphonenumber


【解决方案1】:

您是否打算完全省略数字末尾的破折号?否则,我对它的看法(从未使用过这个包)是为了以国家方式显示以色列号码:

    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();
    }

这会产生:

054-555-1212

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    • 2014-09-09
    • 1970-01-01
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    • 2016-11-19
    相关资源
    最近更新 更多