denisspitfire 12 de abr. de 2013
por exemplo, nao da pra fazer isso?
System . out . println ( cnpj . replace ( /[^ 0 - 9 ]+/ g , "" ));
Rodrigo_Sasaki 12 de abr. de 2013
System . out . println ( cnpj . replaceAll ( "\\D" , "" ));
denisspitfire 12 de abr. de 2013
e agora, eu quero formatar como um cnpj. Tipo quero que ja saia com a formatação os . e tudo mais. Da pra fazer com expressao regular também?
Rodrigo_Sasaki 12 de abr. de 2013
Dá sim, mas não esqueça de tratar as exceções
private static String removerMascara ( String cnpj ) {
return cnpj .replaceAll ( "\\D" , "" ) ;
}
private static String adicionarMascara ( String cnpj ) {
Pattern pattern = Pattern .compile ( "(\\d{2})(\\d{3})(\\d{3})(\\d{4})(\\d{2})" ) ;
Matcher matcher = pattern .matcher ( cnpj ) ;
if ( matcher .find ()) {
return matcher .replaceAll ( "$1.$2.$3/$4-$5" ) ;
}
return cnpj ;
}
denisspitfire 12 de abr. de 2013
nao posso usar a biblioteca pattern
Rodrigo_Sasaki 12 de abr. de 2013
Fica como um desafio pra você então
Rodrigo_Sasaki 12 de abr. de 2013
Dica: usando um StringBuilder a tarefa fica bem simples.
denisspitfire 12 de abr. de 2013
super tranquilo
StringBuilder sBuilder = new StringBuilder ( cnpj );
sBuilder . insert ( 2 , "." );
sBuilder . insert ( 6 , "." );
sBuilder . insert ( 10 , "/" );
sBuilder . insert ( 15 , "-" );
denisspitfire 12 de abr. de 2013
nao tem como inserir dois ou mais de uma vez?
sBuilder . insert ( 2 , "." , 6 , "." );
entanglement 12 de abr. de 2013
Faça isto:
StringBuilder sBuilder = new StringBuilder ( cnpj )
. insert ( 2 , "." )
. insert ( 6 , "." )
. insert ( 10 , "/" )
. insert ( 15 , "-" );