O que é um número de telefone?
[Código de área] - [Código de área] - [Número do Cliente]
Ele possui uma estrutura que separa o número com dois hífens assim.
0312345678
É surpreendentemente difícil colocar um hífen em um número que não tem hífen.
Às vezes o código de área tem 2 dígitos, às vezes 3 dígitos, às vezes 4 dígitos, e celulares têm 3 dígitos, então é demais para fazer sozinho.
Seção de código de área na Wikipédia
Nesse caso, vamos semear algo longo, então usamos a biblioteca fornecida por um lugar confiável.
O Google original havia lançado uma biblioteca.
libphonenumber
Basicamente, baixe o mais recente, coloque no projeto Android e você estará pronto para começar.
*Não esqueça de verificar a biblioteca que você quer exportar ao criar um apk.
É extremamente fácil de usar.
[code lang="java" light="true"] /** * Converter um número numérico em um número de telefone com hífen * @param incomingNumber * @return número de telefone hifenizado */ privado String getFormattedPhoneNumber(String incomingNumber) { PhoneNumberUtil phoneUtil = PhoneNumber.getInstance(); try { PhoneNumber pn = phoneUtil.parse(incomingNumber, "JP"); incomingNumber = phoneUtil.format(pn, PhoneNumberFormat.NATIONAL); } catch (NumberParseException e) { Log.e("app tag","Falhou em formatar número de telefone", e); } return incomingNumber; } [/code]
Nunca testei em nada além do Android, mas pode ser usado com Java puro... talvez?