Eu segui as instruções do professor, mas mesmo colocando o "useLocale(Locale.US)" continua dando a Exceção InputMismatchException.
Código:
public class LeituraScanner {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(new File("contas.csv"));
Locale ptbrLocale = new Locale("pt", "BR");
while(sc.hasNextLine()){
String linha = sc.nextLine();
System.out.println(linha);
Scanner linhaScanner = new Scanner(linha);
// linhaScanner.useLocale(ptbrLocale);
linhaScanner.useLocale(Locale.US);
linhaScanner.useDelimiter(",");
String valor1 = linhaScanner.next();
int valor2 = linhaScanner.nextInt();
int valor3 = linhaScanner.nextInt();
String valor4 = linhaScanner.next();
double valor5 = linhaScanner.nextDouble();
System.out.println(valor1 +" "+ valor2 +" "+ valor3 +" "+ valor4 +" "+ valor5);
linhaScanner.close();
}
sc.close();
}
}
Saída no Console:
CC,22,33,Nico Steppat,210.1
CC 22 33 Nico Steppat 210.1
CP,11,55,Luan Silva, 1300.98
Exception in thread "main" java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:939)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextDouble(Scanner.java:2564)
at br.com.vinicius.java.io.fluxos.OutrosTiposDeEntradaESaida.LeituraScanner.main(LeituraScanner.java:39)
No caso, essa linha 39 do LeituraScanner se refere a linha:
double valor5 = linhaScanner.nextDouble();
Eu também já tentei criar um Locale com as configurações de português brasileiro, mas ainda assim não resolveu o problema.