Problema de logica!?

poxa to quebrando a cabeça para solucionar uma exception q esta ocorrendo …a tentativa e de separar uma string q tenha “01020304050607080910” em numeros…1,2,3…mas nao to conseguindo…alguem me de uma luz.:slight_smile:
o codigo:

linha="01020304050607080910"; while (x<=linha.length()-2) { System.out.println(linha.substring(x,2)); //arrayNum[Integer.parseInt(linha.substring(x,2))]=1; x+=2; }
onde estou pecando?!
valeu galera…inte.

O método substring(x,y) pega os caracteres da string entre os indices x e y, y >= x. O que acontece é que você estava pegando entre x e 2, o que dá erro quando x for maior que 2. No seu caso, ele deve pegar os caracteres entre os índices x e x+2.

System.out.println(linha.substring(x,x+2));

[quote=David]O método substring(x,y) pega os caracteres da string entre os indices x e y, y >= x. O que acontece é que você estava pegando entre x e 2, o que dá erro quando x for maior que 2. No seu caso, ele deve pegar os caracteres entre os índices x e x+2.

System.out.println(linha.substring(x,x+2));

valeuw…era falta de experiencia mesmo…pensava que o segundo elemento correspondia a quantidade de elementos q desejasse pegar…putz…quebrando a cuca…a logica tava certa…falow…tnkz…ate.

public class Chars {

	public static void main(String[] args) {
		String numeros = "01020304050607080910";
		
		System.out.println("Com CharAt");
		for(int i=1;i<numeros.length();i+=2)			
			System.out.print(numeros.charAt(i));
		
		System.out.println("\nCom toCharArray");
		char [] A = "01020304050607080910".toCharArray();
		for(int i=1;i<A.length;i+=2)
			System.out.print(A[i]);
	}

}