строка формата java - PullRequest
       31

строка формата java

2 голосов
/ 23 октября 2011

Мне нужно изменить строку из следующего формата "6254897283" на следующий формат "(625) 555-1212." Есть идеи для лучшего способа сделать это? Я сделаю это способом, который я хотел бы использовать повторно.

Ответы [ 2 ]

2 голосов
/ 23 октября 2011
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 голос
/ 23 октября 2011

Вы можете просто использовать replaceAll и регулярные выражения, чтобы сделать это:

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

Идея состоит в том, чтобы разделить и захватить три группы по 3 ($1), 3($2) и 4 ($3) цифры от исходного 10-значного номера, а затем соответствующим образом переформатируйте эти группы (($1) $2-$3).

...