Exception de Array

pow ta dando esse erro qunado tento fazer esse for ae

Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 27

alguem sabe o ki eh ?

[code] int[] fator;

		fator		=	new int [codigo.length()-1];
		produto		=	new int [codigo.length()-1];
		
		for (int i = fator.length; i > 0; i--){
			if (i == fator.length)
				fator[i]	=	1;
			else
			{
				if (fator[i+1] ==  2)
					fator[i]	=	1;
				else
					fator[i]	=	2;
			}
				
		}[/code]

[color=“red”]Editado: Favor não colocar o nome de assunto com muitas caracteres.

Alterado para: Exception de Array
Antigo: java.lang.ArrayIndexOutOfBoundsException

Obrigado, Reifel.[/color]

tente assim:

fator = new int [codigo.length()]; produto = new int [codigo.length()];

:joia:

assim num funcionou nao… coisa eskizita!!!

fator cannot be resolved
produto cannot be resolved

posta o codigo inteiro por favor.

[code] public int fBoletoLinhaDigitavel(String codigo){

		int divisor			=	0;

		fator		=	new int [codigo.length()-1];
		produto		=	new int [codigo.length()-1];
		
		for (int i = fator.length; i > 0; i--){
			if (i == fator.length)
				fator[i]	=	1;
			else
			{
				if (fator[i+1] ==  2)
					fator[i]	=	1;
				else
					fator[i]	=	2;
			}
				
		}

}
[/code]

o que esse método faz ?

bem ele calcula a linha digitavel do boleto…

e me retorna um numero inteiro

ele recever uma string do tipo 22542256324552452584558 ai faz uns calculos …

coloca a sua String em um array de chars q fica bem + simples pra tu trabalhar :joia:

pow +++ ai eh cruel pq eu so quero saber o tamanho da string nada mais :frowning:

tp… entao testa isso…

[code]public int teste(String str) {
int retorno = 0;

int[] x = new int[str.length()];

for(int i=0;i<x.length;i++)
x[i] = Integer.parseInt(x.subString(i,i+1));

// agora vamos supor que o seu int retornado é a soma de todos os
//elementos do array X
for(int j=0;j<x.length;j++)
retorno += x[j];

return retorno;
[/code]

Eu não testei o código, mas e essa a intenção rsr

blz o teu funcionou +++++++++++ uma coisa q percebi eh q qunado eu faco

	String str = "123456789123456789";   
	int retorno = 0;

	   int[] x = new int[str.length()];
	   
	 [b] for(int i = x.length; i &gt; 0; i--)[/b]
	      x[i] = 1;

// agora vamos supor que o seu int retornado é a soma de todos os
//elementos do array X
for(int j=0;j<x.length;j++)
retorno += x[j];

tu quer “echer” o array de traz pra frente ?

tp…

str = “123465789”;

deixar ele

987654321 ?

ESKECE ISSO AHUHUAHUAHU

EU FIZ ASSIM PEGUEI O LENGTH -1 NO FOR…

Entao podemos fechar a dúvida :?:

eu me contentei com esse gatilho

:joia: