2011-10-11 132 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