2011-10-23 60 views
2

我需要將字符串從以下格式「6254897283」更改爲以下格式 「(625)555-1212」。任何想法的最佳方式來做到這一點?我會用我想重用的方法來做。格式字符串java

回答

2
String phone = "6254897283"; 

MessageFormat phoneFmt = new MessageFormat("({0}) {1}-{2}"); 
String[] phoneArr = { phone.substring(0, 3), phone.substring(3, 6), 
     phone.substring(6) }; 

System.out.println(phoneFmt.format(phoneArr)); 

或者

有了這個開源庫http://code.google.com/p/libphonenumber/

1

你可以只使用replaceAll和正則表達式來實現這一目標:

String s = "6254897283"; 
System.out.println(s.replaceAll("(\\d{3})(\\d{3})(\\d{4})", "($1) $2-$3")); 
// (625) 489-7283 

的想法是鴻溝和捕獲3組3($1),3($2)和4($3)個數字,然後相應地重新格式化這些組(($1) $2-$3)。