2
respostas

A saída no console é diferente do esperado

Estou usando o Eclipse no Windows 11. Ele usa o UTF-8 como padrão, porém a saída no console continua errada. Veja meu código: package br.com.alura.java.io.teste;

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

public class TesteLeitura2 {

public static void main(String[] args) throws Exception {

    Scanner scanner = new Scanner(new File ("contas.csv"), "UTF-8");

    while(scanner.hasNextLine()) {
        String linha = scanner.nextLine();                    

        Scanner linhaScanner = new Scanner(linha);
        linhaScanner.useLocale(Locale.US);
        linhaScanner.useDelimiter(",");

        String tipoConta = linhaScanner.next();
        int agencia = linhaScanner.nextInt();
        int conta = linhaScanner.nextInt();
        String titular = linhaScanner.next();
        Double saldo = linhaScanner.nextDouble();

        //String valorFormatado = String.format("%s - %04d-%08d, %20s: %08.2f", tipoConta, agencia, conta, titular, saldo);

        System.out.format(new Locale("pt","BR"),"%s - %04d-%08d, %20s: %08.2f%n", 
                tipoConta, agencia, conta, titular, saldo);

        linhaScanner.close();

    }    
    scanner.close();
}

}

No console, não sai "Sérgio".

2 respostas

Testei localmente usando UTF-8 e parece tudo certo com "Sérgio" e "Otávio":

CC - 0022-00000033,         Nico Steppat: 00210,10
CP - 0011-00000055,           Luan Silva: 01300,98
CC - 0022-00000044,          Ana Garcias: 00350,40
CC - 0023-00000045,         Sérgio Gomes: 00430,40
CC - 0023-00000045,         Otávio Gomes: 00430,40

Como está exibindo a saída no seu caso?

Minha saída é a seguinte:

CC - 0022-00000033,         Nico Steppat: 00210,10
CP - 0011-00000055,           Luan Silva: 01300,98
CC - 0022-00000044,       S�rgio Garcias: 00350,40