Java:将字符串格式化为电话号码

时间:2011-10-11 17:27:54

标签: java

我有一个未格式化的电话号码字符串(“5551234567”)。我想在ui中格式化此字符串以用于显示目的。格式后,数字应如下所示:

(555)123-4567

叹息.....

我试图找到一种考虑美国和国际电话号码的通用方法。我在JDK中遇到了MaskFormatter,但发现Javadoc中存在一个错误。这导致我在这里问我的问题。我希望有一个解决方案,我可以输入一个掩码,然后输入实际的字符串。对于国际/美国号码,输出将相应地格式化,或者如果指定了错误的字符数,则将显示一些默认字符来代替缺少的字符........

http://www.java.net/node/660119

2 个答案:

答案 0 :(得分:19)

String.format("(%s) %s-%s", number.substring(0, 3), number.substring(3, 6), 
          number.substring(6, 10));

答案 1 :(得分:1)

这是家庭作业吗?我将把它作为练习留给John从Perl转换为Java。应该很简单;特别是像http://www.regexbuddy.com/这样的东西。

:~$ perl -pe 's/\D//g;s/^(\d{3})(\d{3})(\d{0,4})(\d*)/(\1) \2-\3/'
5551234567
(555) 123-4567