Não estou encontrando o erro

Olá, pessoal,

tenho o seguinte código:

package kamatue;

// @SuppressWarnings("unused")
public class Processador {

	public static String recepcao = "Se for bebê, não dirija! Espere até completar 18 anos.";
	static String[] parte;
	
	public static void main(String[] arg){
		parte = recepcao.split(" "); 
		for (int i = 0; i <= recepcao.length(); i++) {
			System.out.println(parte[i]);
		}
	}
}

e ele dá o seguinte erro:

Se
for
bebê,
não
dirija!
Espere
até
completar
18
anos.
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 10
at kamatue.Processador.main(Processador.java:12)

Como posso resolver isso?
É alguma coisa muito básica. Eu consegui meu objetivo de dividir a string.

Agradecido
Lucas

O menor-igual no For e tb usar o array que vc esta acessando

for (int i = 0; i < parte.length(); i++) { System.out.println(parte[i]); }

Você pode usar o foreach

for (String string : parte) { System.out.println(string); }

public class kamatue {
public static String recepcao = &quot;Se for bebê, não dirija! Espere até completar 18 anos.&quot;;  
	    static String[] parte;  
	      
	    public static void main(String[] arg){  
	        parte = recepcao.split(&quot; &quot;);   
	        for (String parte : kamatue.parte) {  
	            System.out.println(parte);  
	        }  
	    }  
	}  

[quote=lucasribeiro]Olá, pessoal,

tenho o seguinte código:

package kamatue;

// @SuppressWarnings("unused")
public class Processador {

	public static String recepcao = "Se for bebê, não dirija! Espere até completar 18 anos.";
	static String[] parte;
	
	public static void main(String[] arg){
		parte = recepcao.split(" "); 
		for (int i = 0; i <= recepcao.length(); i++) {
			System.out.println(parte[i]);
		}
	}
}

e ele dá o seguinte erro:

Se
for
bebê,
não
dirija!
Espere
até
completar
18
anos.
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 10
at kamatue.Processador.main(Processador.java:12)

Como posso resolver isso?
É alguma coisa muito básica. Eu consegui meu objetivo de dividir a string.

Agradecido
Lucas
[/quote]

O erro é apresentado por que você está percorrendo parte[] com o tamanho de recepção[], como recepcao.length() é maior do que parte.length() a exceção é lançada.
Sacou?

:wink:
James

Pessoal, deu certo…

Consegui o mesmo resultado sem a exception.
fabriciov, o método length() inclui o terminador na contagem, né? Pois se não, nunca vai ler o último caractere… E o que mesmo o for each faz?
gusthavosouza, dos baixios da minha ignorância, eu dou um palpite: tudo, antes de ser de qualquer outro tipo, é uma string em java.
james_lisboa, puts, é mesmo!

Valeu pessoal
Lucas