如何在Android中创建电话号码格式XXX-XXX-XXXX

时间:2014-07-28 08:47:25

标签: java android

有人可以帮我解决这个问题吗?

我希望电话号码之间有"-"。 我试过了 。它仅显示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;
    }

请指导我实现目标的正确方法。

5 个答案:

答案 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 (" ")格式化,然后对"-"字符进行替换。