我想以这种格式获取电话号码X(XXX)XXX-XXX,当我搜索PhoneNumberUtils.formatNumber()时,我发现了PhoneNumberUtils.formatNumber(),但是它给出了这个格式的号码,X-XXX-XXX-XXX,所以我如何从X(XXX)XXX-XXX中获得这个号码。
码
holder.tv_vehicle.setText("Phone #: " + PhoneNumberUtils.formatNumber(data.getUserPhone()));发布于 2021-09-18 23:59:29
PhoneNumberUtils.formatNumber将返回(XXX)XXX-XXX,如果您通过一个本地号码,而XXX XXX-XXX为国际号码,在您的情况下,您有两个解决方案:
结果:+1(202) 000-0000
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
发布于 2021-09-18 22:00:25
holder.tv_vehicle.setText("Phone #: " + PhoneNumberUtils.formatNumber(data.getUserPhone()).replaceFirst("-", "(").replaceFirst("-", ")"));您可以使用replaceFirst()插入(然后)并转换它。我在这里写了一点不好的代码,应该能用。如果我是在我自己的程序中这样做的话,我会把它变成一个函数,然后返回更新的字符串。
https://stackoverflow.com/questions/69238688
复制相似问题