Uma forma fácil de formatar strings em java é utilizando a classe MaskFormatter.
import javax.swing.text.MaskFormatter;
public static String formatarString(String texto, String mascara) {
if(texto == null){
return null;
}
try {
MaskFormatter mf = new MaskFormatter(mascara);
mf.setValueContainsLiteralCharacters(false);
return mf.valueToString(texto);
} catch(Exception e){
return texto;
}
}
public static String desformatarString(String texto, String mascara) {
if(texto == null){
return null;
}
try {
MaskFormatter mf = new MaskFormatter(mascara);
mf.setValueContainsLiteralCharacters(false);
return mf.stringToValue(texto).toString();
} catch(Exception e){
return "";
}
}
Um exemplo de utilização é se você precisa formatar um CNPJ. Imagine que você receba o valor do CNPJ sem pontos e traços, mas precisa mostrá-lo corretamente formatado...você poderia fazer assim:
public static void main(String[] args) {
try{
System.out.println(formatarString("54555499869655", "##.###.###/####-##"));
}catch(Exception e){
e.printStackTrace();
}
}
Agora, se você recebe o CNPJ formatado e precisa gravá-lo no banco somente com os números, você poderia fazer:
public static void main(String[] args) {
try{
System.out.println(desformatarString("54.555.499/869-655", "##.###.###/####-##"));
}catch(Exception e){
e.printStackTrace();
}
}
Imagine agora que você ainda precisa guardar alguma informação (sem qualquer formatação) que foi formatada mas você não sabe que formato foi utilizado. Utilize então esse método:
public static String somenteNumerosLetras(String texto) {
if(texto == null){
return null;
}
return texto.replaceAll("[^0-9a-z0-9A-Z]", "");
}
Ele retira tudo o que não for letra e número da string...fácil né!
Nenhum comentário:
Postar um comentário