I'm doing a job for college that consists of creating an array of buildings based on some rules that are provided by txt. The code gives an error and I do not know what is happening.
A detail that when I comment the line valor = Integer.parseInt(parts[contvetor]);
works normal. But the contvetor
variable is declared, so I do not know what's going on.
I need to run this string array by converting to go using the values in the code and create the real estate bank board.
try {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while(line!=null){
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine();
//System.out.println(line);
}
String everything = sb.toString();
//System.out.println(everything);
String[] parts = everything.split(";");
//System.out.println(parts[8]);
valor = Integer.parseInt(parts[0]);
valorinicial = Integer.parseInt(parts[0]); //variavel valor recebe o inteiro convertido do txt
// int[] idades = new int[valor]; //define o tamnho do vetor
ArrayList<Imovel> vetor = new ArrayList<Imovel>();
for(int cont=0;cont<valorinicial;cont++){ //estrutura de repeticao que inicia o tabuleiro
if(cont==0){
ClubeSocial start = new ClubeSocial(); //clubesocial eh a classe start
start.setstart(); //isso faz com que os 4 primeiros valores lidos no arquivos ja tenham sido utilizados parts[0-3]
vetor.add(start);
contvetor = 4;
valor = Integer.parseInt(parts[contvetor]);
}
for(int cont2=0;cont2<6;cont2++){
if(cont2==0 || cont2==1){ //nao preciso da id e nao preciso da casa, porque o for ja faz isso, entao desconsidero as 2
cont2++;
contvetor++;
}
//abaixo olhamos valor casa para ver se cai 2 ou 3 [passe a vez ou add imovel]
if(valor==2){ //adiciona um passe a vez e faz cont2 ficar maior que 5 para que termine essa linha de instrucao e comece a prox
passeavez pass = new passeavez();
pass.setpass();
vetor.add(pass);
cont2 = 6;
contvetor++;
}
else{ //no caso o valor é 3 que é pra add imovel
cont2++; //incrementa o valor do contador para pegar o 4ª valor dos 6 da linha
if(valor == 1){
Residencia residencia = new Residencia();
cont2++;
contvetor++; //incrementa o valor do contador para pegar o 5ª valor dos 6 da linha
residencia.setPreco(valor);
cont2++;
contvetor++;//incrementa o valor do contador para pegar o 6ª valor dos 6 da linha
residencia.setAluguel(valor);
vetor.add(residencia);
cont2 = 6;
}
else if(valor == 2){
Comercio comercio = new Comercio();
cont2++;
contvetor++;//incrementa o valor do contador para pegar o 5ª valor dos 6 da linha
comercio.setPreco(valor);
cont2++;
contvetor++;//incrementa o valor do contador para pegar o 6ª valor dos 6 da linha
comercio.setAluguel(valor);
vetor.add(comercio);
cont2 = 6;
}
else if(valor == 3){
Industria industria = new Industria();
cont2++;
contvetor++;//incrementa o valor do contador para pegar o 5ª valor dos 6 da linha
industria.setPreco(valor);
cont2++;
contvetor++;//incrementa o valor do contador para pegar o 6ª valor dos 6 da linha
industria.setAluguel(valor);
vetor.add(industria);
cont2 = 6;
}
else if(valor == 4){
Hotel hotel = new Hotel();
cont2++;
contvetor++;//incrementa o valor do contador para pegar o 5ª valor dos 6 da linha
hotel.setPreco(valor);
cont2++;
contvetor++;//incrementa o valor do contador para pegar o 6ª valor dos 6 da linha
hotel.setAluguel(valor);
vetor.add(hotel);
cont2 = 6;
}
else if(valor == 5){
Hospital hospital = new Hospital();
cont2++;
contvetor++;//incrementa o valor do contador para pegar o 5ª valor dos 6 da linha
hospital.setPreco(valor);
cont2++;
contvetor++;//incrementa o valor do contador para pegar o 6ª valor dos 6 da linha
hospital.setAluguel(valor);
vetor.add(hospital);
cont2 = 6;
}
}
}
}
System.out.println("pqp" + valor);
} catch (IOException ioe) {
ioe.printStackTrace();
}
finally{
//br.close();
}
}
}
Error below:
Exception in thread "main" java.lang.NumberFormatException: For input string: " 2" at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at jogo.main.main(main.java:45)