Converter String em array de inteiros

seguinte, tenho uma

String valor = “123456”
e quero converte-la num array de inteiros, pois irei precisar fazer calculos com cada numedo dessa string.

ja vi como converter de string pra int, ou pra array de char, mas nao pra inteiro.

eu queria uma forma java de fazer, nao queria sair dividindo o valor do int por 10 e pegando o resto…

kindurys,

segue abaixo dois exemplos que fiz. Escolha o que lhe achar mais conveniente.

1° exemplo:


public class ConverterString {

	public static void main(String[] args) 
	{
		
		String valor = "123456";
		char[] arrayValores = valor.toCharArray();
		int[] valorInteiros = new int[arrayValores.length];

		for (int i = 0; i < arrayValores.length; i++) 
		{
			valorInteiros[i] = Integer
					.parseInt(String.valueOf(arrayValores[i]));

			System.out.println(valorInteiros[i]);
		}
		

	}
	
}

2° exemplo:


public class ConverterString {

	public static void main(String[] args) 
	{
		
		String valor = "123456";
			
		int[] valorInt = new int[valor.length()];
		
		for (int i = 0; i < valorInt.length; i++) {
			valorInt[i] = Integer.parseInt(valor.substring(i, i+1));
			System.out.println(valorInt[i]);
		}
	
	}
	
}

Faz o split da string usando expressao regular.
Depois percorre o array de string jogando num array de inteiros (deve ter um jeito melhor de fazer esse passo, mas sao 3 da manha e eu tou com sono :shock: )

		String s = "123456";
		String[] s2 = s.split("\B");
		
		int arrayInteiro[] = new int[s2.length];
		for(int i = 0; i < s2.length; i++) 
			arrayInteiro[i] = Integer.valueOf(s2[i]);

Um pouco mais sobre regex tem no java.util.regex.

edit: droga, o sono fez eu criar o usuario com nome errado…

[]s

[quote=Petrônio Braga]kindurys,

segue abaixo dois exemplos que fiz. Escolha o que lhe achar mais conveniente.

1° exemplo:


public class ConverterString {

	public static void main(String[] args) 
	{
		
		String valor = "123456";
		char[] arrayValores = valor.toCharArray();
		int[] valorInteiros = new int[arrayValores.length];

		for (int i = 0; i < arrayValores.length; i++) 
		{
			valorInteiros[i] = Integer
					.parseInt(String.valueOf(arrayValores[i]));

			System.out.println(valorInteiros[i]);
		}
		

	}
	
}

2° exemplo:

[code]

public class ConverterString {

public static void main(String[] args) 
{
	
	String valor = "123456";
		
	int[] valorInt = new int[valor.length()];
	
	for (int i = 0; i < valorInt.length; i++) {
		valorInt[i] = Integer.parseInt(valor.substring(i, i+1));
		System.out.println(valorInt[i]);
	}

}

}

[/code][/quote]

Valeeeeu… serviu pra mim tb.

	String teste = "123456";
	System.out.println(teste.toCharArray()[0]);

[quote=Petrônio Braga]kindurys,

segue abaixo dois exemplos que fiz. Escolha o que lhe achar mais conveniente.

1° exemplo:


public class ConverterString {

	public static void main(String[] args) 
	{
		
		String valor = "123456";
		char[] arrayValores = valor.toCharArray();
		int[] valorInteiros = new int[arrayValores.length];

		for (int i = 0; i < arrayValores.length; i++) 
		{
			valorInteiros[i] = Integer
					.parseInt(String.valueOf(arrayValores[i]));

			System.out.println(valorInteiros[i]);
		}
		

	}
	
}

2° exemplo:

[code]

public class ConverterString {

public static void main(String[] args) 
{
	
	String valor = "123456";
		
	int[] valorInt = new int[valor.length()];
	
	for (int i = 0; i < valorInt.length; i++) {
		valorInt[i] = Integer.parseInt(valor.substring(i, i+1));
		System.out.println(valorInt[i]);
	}

}

}

[/code][/quote]
Isso me ajudou muito valew…

vc poderia me dizer em questao de eficiencia e velocidade

[color=darkblue]valorInteiros[i] = Integer
.parseInt(String.valueOf(arrayValores[i]));[/color]

OU

[color=darkblue]valorInteiros[i] = (int) arrayValores[i];[/color]

e melhor??

Obrigado, bom posts…