我有一个未格式化的电话号码字符串(“5551234567”)。我想在ui中格式化此字符串以用于显示目的。格式后,数字应如下所示:
(555)123-4567
叹息.....
我试图找到一种考虑美国和国际电话号码的通用方法。我在JDK中遇到了MaskFormatter,但发现Javadoc中存在一个错误。这导致我在这里问我的问题。我希望有一个解决方案,我可以输入一个掩码,然后输入实际的字符串。对于国际/美国号码,输出将相应地格式化,或者如果指定了错误的字符数,则将显示一些默认字符来代替缺少的字符........
答案 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