2011-10-23 61 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)。