2011-10-11 131 views
3

我有一个未格式化的电话号码字符串(“5551234567”)。我想将这个字符串的格式设置为在UI中显示。数量应该是这样的格式后:Java:将字符串格式化为电话号码

(555)123-4567

唉.....

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

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

+0

那么我们的非美国朋友呢? – Anders

+0

@JohnConnor现在我必须知道。 http://download.oracle.com/javase/6/docs/api/javax/swing/text/MaskFormatter.html中的错误是什么? – dlamblin

+0

@dlamblin如果你真的尝试了代码,你会看到问题。 –

回答

18
String.format("(%s) %s-%s", number.substring(0, 3), number.substring(3, 6), 
      number.substring(6, 10)); 
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 
+0

perl很漂亮:D – ashiaka