Como separar valores de uma variável do tipo String

9 respostas
IagoRock

Bom dia pessoal.

É assim, eu estou criando um validador de CPF’s, li alguns artigos e já possuo uma lógica formada.

Mas para criar esse validador preciso separar os valores de uma váriavel que foram inseridos de um JTextField e atribuir cada valor para uma váriavel diferente passando de String para int.

Como que eu poderia fazer isso?

Muito obrigado desde já!

9 Respostas

T

Não entendi direito você quer converter de string para int é isso?

Poneis123

Vc ta tentando por exemplo separar cada 3 casas dessa string e transformar esse resultado de 3 casas para int? por exemplo:
CPF: [CPF removido]… vc quer pegar apenas o 123 em uma variavel e dps transformar para string e assim por diante?

se for isso, utilize o método subString() da string, para isso vc faria:

String cpf = "[CPF removido]"; System.out.println("CPF 1: " + cpf.substring(0,3) ); int primeiraCasa = Integer.parseInt(cpf.substring(0,3));

IagoRock

Minha idéia é mais ou menos essa:

Possuo uma String chamada CPF:

String CPF = “[telefone removido]”;

E quero fazer isso:

int numero_01 = 1;

int numero_02 = 2;

int numero_03 = 3;

int numero_04 = 4;

int numero_05 = 5;

int numero_06 = 6;

int numero_07 = 7;

int numero_08 = 8;

int numero_09 = 9;

int numero_10 = 4;

int numero_11 = 0;
T

Iago,

Pode optar por usar validadores prontos. Caso tenha interesse:

http://stella.caelum.com.br/

xandevieira

Se seu valor vier em mascara xxx.xxx.xxx-xx bastara usar o split

IagoRock

Muito Obrogado a todos.

Consegui pegar os valores que eu queria!

Vai aqui o código para o que era o meu interessa:

public class Pega {
	
		public static void main (String args []) {
		
			String CPF = "[telefone removido]";
			
			int numero_01 = Integer.parseInt (CPF.substring(0, 1));  
			int numero_02 = Integer.parseInt (CPF.substring(1, 2));  
			int numero_03 = Integer.parseInt (CPF.substring(2, 3));  
			int numero_04 = Integer.parseInt (CPF.substring(3, 4));  
			int numero_05 = Integer.parseInt (CPF.substring(4, 5));  
			int numero_06 = Integer.parseInt (CPF.substring(5 ,6));  
			int numero_07 = Integer.parseInt (CPF.substring(6, 7));  
			int numero_08 = Integer.parseInt (CPF.substring(7, 8));  
			int numero_09 = Integer.parseInt (CPF.substring(8, 9));  
			int numero_10 = Integer.parseInt (CPF.substring(9, 10));  
			int numero_11 = Integer.parseInt (CPF.substring(10, 11));  
			
			System.out.println (numero_01);  
			System.out.println (numero_02);
			System.out.println (numero_03);
			System.out.println (numero_04);
			System.out.println (numero_05);
			System.out.println (numero_06);
			System.out.println (numero_07);
			System.out.println (numero_08);
			System.out.println (numero_09);
			System.out.println (numero_10);
			System.out.println (numero_11);		
		
		}
	
	}

Quando eu acabar de fazer o meu validador eu o postarei aqui o código fonte aqui, obrigado a todos!

=D

IagoRock

Valeu pessoal!

Aqui está o meu validador de CPF...

O código está enorme, mas fui eu que criei, então está bom! xD

Muito obrigado!

import javax.swing.*;

	public class Validador_CPF {
	
		public static void main (String args []) {
		
			String CPF = JOptionPane.showInputDialog (null, "Entre com o número de CPF", "Entre com o CPF", JOptionPane.PLAIN_MESSAGE);
			
			if (CPF.length() != 11 || CPF.equals("[telefone removido]")  || CPF.equals("[telefone removido]") || CPF.equals("[telefone removido]") || CPF.equals("[telefone removido]") || CPF.equals("[telefone removido]") || CPF == "[telefone removido]" || CPF.equals("[telefone removido]") || CPF.equals("[telefone removido]") || CPF.equals("[telefone removido]") || CPF.equals("[telefone removido]")) {
			
				JOptionPane.showMessageDialog (null, "Número de CPF inválido, por favor insira um novo", "CPF inválido", JOptionPane.ERROR_MESSAGE);
			
			}
			
			else {
			
				int numero_01 = Integer.parseInt (CPF.substring(0, 1));  
				int numero_02 = Integer.parseInt (CPF.substring(1, 2));  
				int numero_03 = Integer.parseInt (CPF.substring(2, 3));  
				int numero_04 = Integer.parseInt (CPF.substring(3, 4));  
				int numero_05 = Integer.parseInt (CPF.substring(4, 5));  
				int numero_06 = Integer.parseInt (CPF.substring(5 ,6));  
				int numero_07 = Integer.parseInt (CPF.substring(6, 7));  
				int numero_08 = Integer.parseInt (CPF.substring(7, 8));  
				int numero_09 = Integer.parseInt (CPF.substring(8, 9));  
				int numero_10 = Integer.parseInt (CPF.substring(9, 10));  
				int numero_11 = Integer.parseInt (CPF.substring(10, 11));  
				
				int digito_01_numero_01 = numero_01 * 10;
				int digito_01_numero_02 = numero_02 * 9;
				int digito_01_numero_03 = numero_03 * 8;
				int digito_01_numero_04 = numero_04 * 7;
				int digito_01_numero_05 = numero_05 * 6;
				int digito_01_numero_06 = numero_06 * 5;
				int digito_01_numero_07 = numero_07 * 4;
				int digito_01_numero_08 = numero_08 * 3;
				int digito_01_numero_09 = numero_09 * 2;
				
				int soma_01 = digito_01_numero_01 + digito_01_numero_02 + digito_01_numero_03 + digito_01_numero_04 + digito_01_numero_05 + digito_01_numero_06 + digito_01_numero_07 + digito_01_numero_08 + digito_01_numero_09;
				
				int digito_01 = soma_01 % 11;
				
				if (digito_01 < 2) {
				
					digito_01 = 0;
				
				}
				
				else {
				
					digito_01 = 11 - digito_01;
				
				}
				
				System.out.println (digito_01);
				
				int digito_02_numero_01 = numero_01 * 11;
				int digito_02_numero_02 = numero_02 * 10;
				int digito_02_numero_03 = numero_03 * 9;
				int digito_02_numero_04 = numero_04 * 8;
				int digito_02_numero_05 = numero_05 * 7;
				int digito_02_numero_06 = numero_06 * 6;
				int digito_02_numero_07 = numero_07 * 5;
				int digito_02_numero_08 = numero_08 * 4;
				int digito_02_numero_09 = numero_09 * 3;
				int digito_02_numero_10 = numero_10 * 2;
				
				int soma_02 = digito_02_numero_01 + digito_02_numero_02 + digito_02_numero_03 + digito_02_numero_04 + digito_02_numero_05 + digito_02_numero_06 + digito_02_numero_07 + digito_02_numero_08 + digito_02_numero_09 + digito_02_numero_10;
				
				int digito_02 = soma_02 % 11;
				
				if (digito_02 < 2) {
				
					digito_02 = 0;
				
				}
				
				else {
				
					digito_02 = 11 - digito_02;
					
				}
				
				System.out.println (digito_02);
				
				if (numero_10 != digito_01 || numero_11 != digito_02) {
			
					JOptionPane.showMessageDialog (null, "Número de CPF inválido, por favor insira um novo", "CPF inválido", JOptionPane.ERROR_MESSAGE);	
			
				}

				else {
				
					JOptionPane.showMessageDialog (null, "Número de CPF " + CPF + " foi válidado. Número de CPF correto", "CPF válido", JOptionPane.INFORMATION_MESSAGE);					
				
				}
			}
		}			
	}
abelgomes

é isso ai cara, parabens…

lina

Oi,

Parabéns! Nada que força de vontade e uma boa logica não resolva.

Se me permitir, gostaria de dar uma dica… ok?

Você não precisa criar varias variaveis inteiras se utilizar Array.

int  numero_01, numero_02, numero_03, numero_04.... numero_11

poderá fazer algo do tipo:

int
ln_posicao	= 0,
cpf = new int[14];

E para adicionar os valores do CPF:

String ls_cpf = "[CPF removido]";
// Claro que coloquei um cpf qualquer aqui no FOR.
for (int i = 0; i < ls_cpf.length();i++) {
     
      // Se for númerico.
      if (ls_cpf.charAt(i) >= '0' && ls_cpf.charAt(i) <= '9') {
      
            if (ln_posicao < 14) {
                  cpf[ln_posicao++] = Integer.parseInt(ls_cpf.substring(i, i + 1));
            }
            else 
            {
                  throw new IllegalArgumentException("CPF ("+ls_cpf+") com mais de 14 posições numéricas");
            }
      }
      // Se posição não númerica ...
      else
      {
                             
              switch (ls_cpf.charAt(i))
             {
                   // Se separador ...
                  case	'.':
                  case	'/':
                  case	'-':
                  case	' ':
                                                
                        break;
                                                
                  default:
                                                
                        throw new IllegalArgumentException("CPF com conteúdo ("+ls_cpf.charAt(i)+") inválido");
             }
       }
}

Tchauzin!

Criado 22 de abril de 2010
Ultima resposta 22 de abr. de 2010
Respostas 9
Participantes 7