Вы можете просто использовать 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
).