Como aplicar máscaras?

3 respostas
E

[/b]Galera, como façoa para aplicar máscaras[b]

telefone (XX) XXXX-XXXX
CPf [CPF removido]

3 Respostas

joede.fadel

pesquise sobre jQuery se for web

juniormaverick

Emanuelrm, não sei se tem algum método em Java que pegue um valor e aplique uma determinada mascara nele. Sei que tem como fazer isto na própria página utilizando javascript ou o framework que você estiver trabalhando. Mas caso queira fazer isto dentro do código tem que ser na “unha”.

Logo abaixo está um exemplo, de código que pode ser utilizado.

public static void main(String[] args) {
		// chama o método passando, o valor a ser formatado, mascara que será utilizada, e os caracteres que utilizamos na mascara
		System.out.println(formatarValorComMascara("[telefone removido]", "###.###.###-##", ".-"));
		System.out.println(formatarValorComMascara("[telefone removido]", "(##)####-####", "()-"));
	}

	public static String formatarValorComMascara(String valorInformado, String mascaraInformada, String caracteresControle) {
		// se valor nulo ou menor que 1
		if (valorInformado == null || valorInformado.length() < 1) {
			// retorna vazio
			return "";
		}

		int nCount = 0;
		String valorFormatado = "";

		// realiza interação em todas as posições da mascara
		for (int i = 0; i <= mascaraInformada.length(); i++){
			try {
				char caracter = ' ';
				// captura caracter da mascara no indice informado
				caracter = mascaraInformada.charAt(i);
				
				// verifica se caracter capturado é igual aos caracteres de controle
				boolean bolMask = caracteresControle.contains(caracter + "");

				// se for igual a caracter de controle
				if (bolMask) {
					// adiciona caracter de controle
					valorFormatado += caracter + "";
				} else {
					// senão irá adicionar o valor capturado a partir do indice informado
					valorFormatado += valorInformado.charAt(nCount);
					nCount++;
				}	
			} catch (StringIndexOutOfBoundsException e) {
				// quando a formatação for concluída lança exception
				return valorFormatado;
			}
		}
		return valorFormatado;
	}
willricardo

Cara da uma estudada no MaskFormatter.

MaskFormatter format = new MaskFormatter("(##)####-####");

MaskFormatter format = new MaskFormatter("###.###.###-##");

Mas tambem pode implementar com Regex.

Da uma olhada no Caellum Stella, pois é usado o regex para fazer as formatações!!

Abraços!

Criado 12 de novembro de 2009
Ultima resposta 12 de nov. de 2009
Respostas 3
Participantes 4