有人可以帮我解决这个问题吗?
我希望电话号码之间有"-"
。
我试过了 。它仅显示XXX-XXX-XXX-X
格式。但我想要 XXX-XXX-XXXX
格式。
下面我提到了我的代码。
在Oncreate
下声明TextView TxtDocPhone=(TextView)findViewById(R.id.TxtDocPhone);
String numbersOnly = keepNumbersOnly(Phone);
String ProviderPhone = formatNumbersAsCode(numbersOnly);
然后叫它
private String keepNumbersOnly(CharSequence s) {
return s.toString().replaceAll("[^0-9]", "");
}
private String formatNumbersAsCode(CharSequence s) {
int groupDigits = 0;
String tmp = "";
for (int i = 0; i < s.length(); ++i) {
tmp += s.charAt(i);
++groupDigits;
if (groupDigits == 3) {
tmp += "-";
// tmp += "";
groupDigits = 0;
}
}
return tmp;
}
请指导我实现目标的正确方法。
答案 0 :(得分:3)
请尝试这种方式,希望这有助于您解决问题。
String formattedNumber = PhoneNumberUtils.formatNumber(unformattedNumber);
请查看PhoneNumberUtils了解更多选项。
答案 1 :(得分:3)
最后我解决了这个问题。只需在formatNumbersAsCode
函数中添加以下内容即可。
return String.format("%s-%s-%s",s.subSequence(0,3),s.subSequence(3,6),s.subSequence(6,10));
答案 2 :(得分:2)
您可以尝试:
private String formatNumbersAsCode(CharSequence s) {
return String.format("%s-%s-%s",s.substring(0,3),s.substring(3,6),s.substring(6));
}
答案 3 :(得分:1)
您最好的方法是使用Regular Expressions。
你知道你的电话号码的格式应该是XXX-XXX-XXXX
,所以你只需为此写一个合适的RegEx,你就可以了!
答案 4 :(得分:0)
使用space (" ")
格式化,然后对"-"
字符进行替换。