Boa noite, gostaria da ajuda de vocês para me ajuda, estou tendo dificuldade em realizar um captura de dados que vem de um arquivo txt que tem esse paramento “c|1|1|200” porem preciso capturar paramento e colocar nas suas devida variável o “c” = string, “1” e “1” = int e “200” = double.
Bom dia amigo, obg, porem como preciso fazer alguns calculo de alguns paramentos conseguir fazer por scanner, porem estou tento um problema, aparece esse erro no final de programa:
Exception in thread “main” java.util.NoSuchElementExceptionat java.util.Scanner.throwFor(Scanner.java:862)at java.util.Scanner.next(Scanner.java:1371)at repasse.NewClass.main(NewClass.java:46)C:\Users\hyago\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1FALHA NA CONSTRUÇÃO (tempo total: 5 segundos)
O que pode ser?
H
Hazalith
o code fonte está no link abaixo, caso queira da uma olhada.
Outra coisa, evite implementar tudo dentro de um único método.
Quebre seu código em partes pequenas.
Exemplo:
importjava.io.IOException;importjava.nio.file.Files;importjava.nio.file.Path;importjava.nio.file.Paths;importjava.util.ArrayList;importjava.util.List;importjava.util.Scanner;publicclassExemplo{privateclassRepasse{intprazo;intqtdParcelas;Stringtipo;floatvalor;Repasse(Stringlinha){String[]campos=linha.split("\\|");tipo=campos[0];prazo=Integer.parseInt(campos[1]);qtdParcelas=Integer.parseInt(campos[2]);valor=Float.parseFloat(campos[3]);}floatcalcularResultado(){switch(tipo){case"c":returncalculaTipoC(this);case"d":returncalculaTipoD(this);default:return0;}}}publicstaticvoidmain(String[]args)throwsException{Exemploprograma=newExemplo();programa.executar();}privatefinalScannerinput=newScanner(System.in);publicvoidexecutar()throwsIOException{intopcao=0;do{System.out.println("Digite o caminho do arquivo a ser lido.");StringarquivoEntrada=input.nextLine();List<Repasse>repasses=calcularRepasses(arquivoEntrada);System.out.println(repasses);StringarquivoSaida=arquivoEntrada+"Repasse.txt";System.out.println(arquivoSaida);salvarRepasses(repasses,arquivoSaida);System.out.println("Digite 0 para fechar o programa e 1 para continuar");opcao=Integer.parseInt(input.nextLine());}while(opcao!=0);}privateList<Repasse>calcularRepasses(Stringcaminho)throwsIOException{Patharquivo=Paths.get(caminho);List<Repasse>repasses=newArrayList<>();List<String>linhas=Files.readAllLines(arquivo);for(Stringlinha:linhas){repasses.add(newRepasse(linha));}returnrepasses;}privatefloatcalculaTipoC(Repasserepasse){floatresultado=0;floatresul=0;if(repasse.prazo==1&&repasse.qtdParcelas==1){resul=(float)((repasse.valor*4.99)/100);resultado=repasse.valor-resul;System.out.println(resultado+"\n 1");}elseif(repasse.prazo==1&&repasse.qtdParcelas>=2){resul=(float)((repasse.valor*5.59)/100);resultado=repasse.valor-resul;System.out.println(resultado+"\n 2");}elseif(repasse.prazo==14&&repasse.qtdParcelas==1){resul=(float)((repasse.valor*3.99)/100);resultado=repasse.valor-resul;System.out.println(resultado+"\n 3");}elseif(repasse.prazo==14&&repasse.qtdParcelas>=2){resul=(float)((repasse.valor*4.59)/100);resultado=repasse.valor-resul;System.out.println(resultado+"\n 4");}elseif(repasse.prazo==30&&repasse.qtdParcelas==1){resul=(float)((repasse.valor*3.19)/100);resultado=repasse.valor-resul;System.out.println(resultado+"\n5");}elseif(repasse.prazo==30&&repasse.qtdParcelas>=2){resul=(float)((repasse.valor*3.79)/100);resultado=repasse.valor-resul;System.out.println(resultado+"\n 6");}returnresultado;}privatefloatcalculaTipoD(Repasserepasse){floatresul=(float)((repasse.valor*2.39)/100);floatresultado=repasse.valor-resul;System.out.println(resultado+"\n 7");returnresultado;}privatevoidsalvarRepasses(List<Repasse>repasses,Stringcaminho)throwsIOException{Patharquivo=Paths.get(caminho);List<String>linhas=newArrayList<>();for(Repasserepasse:repasses){linhas.add("Repasse:"+repasse.calcularResultado());}Files.write(arquivo,linhas);}}
H
Hazalith
amigo assim, vc ajudou pra crl. obg mesmo
H
Hazalith
Porem esse quebrar eu não entendo muito, me da um bug, as vezes, mas obg pela ajuda.