首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取美国格式的用户电话号码

获取美国格式的用户电话号码
EN

Stack Overflow用户
提问于 2021-09-18 21:45:11
回答 2查看 167关注 0票数 1

我想以这种格式获取电话号码X(XXX)XXX-XXX,当我搜索PhoneNumberUtils.formatNumber()时,我发现了PhoneNumberUtils.formatNumber(),但是它给出了这个格式的号码,X-XXX-XXX-XXX,所以我如何从X(XXX)XXX-XXX中获得这个号码。

代码语言:javascript
复制
holder.tv_vehicle.setText("Phone #: " + PhoneNumberUtils.formatNumber(data.getUserPhone()));
EN

回答 2

Stack Overflow用户

发布于 2021-09-18 23:59:29

PhoneNumberUtils.formatNumber将返回(XXX)XXX-XXX,如果您通过一个本地号码,而XXX XXX-XXX为国际号码,在您的情况下,您有两个解决方案:

  1. 删除国家代码,然后解析电话号码 字符串phoneNumber =“+1-202-0000000”;字符串代码= result.substring(0,3);字符串localNumber =result.replace(代码,"");//202-555-0196 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {Log.i(“结果”,code.replace("-","") + PhoneNumberUtils.formatNumber(localNumber,"US"));}{Log.i(“结果”,code.replace("-","") + PhoneNumberUtils.formatNumber(localNumber));}

结果:+1(202) 000-0000

  1. 使用此库google/libphonenumber格式化国际电话号码。
代码语言:javascript
复制
private String getFormattedNumber(String phoneNumber) {
    
    PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
    
    Phonemetadata.NumberFormat numberFormat = new Phonemetadata.NumberFormat();
    
    numberFormat.pattern = "(\\d{3})(\\d{3})(\\d{4})";
    
    numberFormat.format = "($1) $2-$3";
    
    List<Phonemetadata.NumberFormat> newNumberFormats = new ArrayList<>();
    
    newNumberFormats.add(numberFormat);
    
    Phonenumber.PhoneNumber phoneNumberPN = null;
    
    try {
        phoneNumberPN = phoneNumberUtil.parse(phoneNumber, Locale.US.getCountry());
        phoneNumber = phoneNumberUtil.formatByPattern(phoneNumberPN, PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL, newNumberFormats);
        
    } catch (NumberParseException e) {
        e.printStackTrace();
    }
    
    return phoneNumber;
}

getFormattedNumber("+12020000000");

结果:+1(202) 000-0000

票数 0
EN

Stack Overflow用户

发布于 2021-09-18 22:00:25

代码语言:javascript
复制
holder.tv_vehicle.setText("Phone #: " + PhoneNumberUtils.formatNumber(data.getUserPhone()).replaceFirst("-", "(").replaceFirst("-", ")"));

您可以使用replaceFirst()插入(然后)并转换它。我在这里写了一点不好的代码,应该能用。如果我是在我自己的程序中这样做的话,我会把它变成一个函数,然后返回更新的字符串。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69238688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档