1
resposta

Exception in thread "main" java.util.InputMismatchException

package com.br.java.io.teste;

import java.io.File; import java.util.Scanner;

public class ScannerTeste {

public static void main(String[] args) throws Exception{
      Scanner scanner = new Scanner(new File("contas.csv"));
      while(scanner.hasNextLine()) {
              String linha = scanner.nextLine();
              System.out.println(linha);

              Scanner linhaScanner = new Scanner(linha);
              linhaScanner.useDelimiter(",");
              String valor1 = linhaScanner.next();
              int valor2 = linhaScanner.nextInt();
              int valor3 = linhaScanner.nextInt();
              String valor4 = linhaScanner.next();
              double valor5 = linhaScanner.nextDouble();
              
              String formatado =String.format("%s (Agencia)%d (Conta)%d %s, (Saldo)%.2f %n", valor1, valor2, valor3,valor4, valor5);

              System.out.println(formatado);

              linhaScanner.close();


      }
      scanner.close();
    
}

} Meu código está muito similar, POREM NÃO CONSIGO IDENTIFICAR O PORQUÊ DAS EXCEPTIONS DE TIPO

1 resposta

Olá Mayara, tudo bem?

A exceção "java.util.InputMismatchException" é lançada quando o scanner encontra um token que não corresponde ao padrão esperado. No seu código, isso pode estar acontecendo quando o scanner tenta ler um valor como inteiro, mas encontra um valor que não é um número inteiro válido.

Para evitar esse problema, você pode adicionar uma verificação antes de ler cada valor, usando o método "hasNextX", onde "X" é o tipo de dado que você espera ler (por exemplo, "hasNextInt" para ler um inteiro). Dessa forma, você pode verificar se o próximo token é do tipo esperado antes de tentar lê-lo.

Por exemplo, no seu código, antes de ler o valor2, você pode adicionar a seguinte verificação:

if (linhaScanner.hasNextInt()) { int valor2 = linhaScanner.nextInt(); } else { // Tratar o caso em que o próximo token não é um inteiro válido }

Espero ter ajudado e bons estudos!