Exception [java.lang.StringIndexOutOfBoundsException]

3 respostas
F

Podem me ajudar?

try{
			arq = new BufferedReader(new FileReader("c:\\testead.txt"));
			String linha;

			while((linha = arq.readLine()) != null){
				String linhaAtual =  linha.toString();
				int tamanhoLinha = linhaAtual.length();
				String origem = linhaAtual.substring(0, 2);
				String destino = linhaAtual.substring(3, 5);                // linha 28
				String valor = linhaAtual.substring(7, tamanhoLinha);
				int valorV = Integer.parseInt(valor);
				
				caminho caminhoLinha = new caminho(origem, destino, valorV);
				
				lista.addCaminho(caminhoLinha);
				
				numeroDeLinhas ++;
			}
			arq.close();
			
		}catch (IOException e) {
			
		}

Está com esse erro:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 5
at java.lang.String.substring(Unknown Source)
at ad2.arquivo.main( arquivo.java:28 )

Alguém sabe o que fiz de errado?

Obrigado!!

3 Respostas

Andersonrms

A String linhaAtual tem menos q 5 caracteres, por isso dá essa exceção.

gustavocoolt
String destino = linhaAtual.substring(3, 5);

Você estipulou para que ele pegasse até o 5º caracter, seu arquivo txt deve conter alguma linha com menos de 5 caracteres para causar este erro.

E
String destino = linhaAtual.substring(3, 5);                // linha 28

Como nosso amigo gustavocoolt você deve ter alguma linha no arquivo com menos de 5 caracteres, só vou completar que nesse caso se tiver linha com menos de 7 caracteres dará erro na linha seguinte

String valor = linhaAtual.substring(7, tamanhoLinha);
Criado 24 de outubro de 2012
Ultima resposta 25 de out. de 2012
Respostas 3
Participantes 4