Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Mesmo com useLocale(Locale.US); o codigo sai com virgula nas casas decimais

Olá, mesmo colocando useLocale(Locale.US); abaixo do construtor, ainda assim imprime com virgula separando as casas decimais, alguém sabe me dizer como faço para imprimir com pontos como esta no csv? OBS: So consegui fazendo String valorFormatado = String.format(new Locale("US") ,"%s - %04d-%08d, %s: %010.2f", tipoConta, agencia, numero, titular, saldo); , porém creio que não era para ser necessário por new Locale no inicio pois como havia dito, já tem acima.

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.useLocale(Locale.US);
            linhaScanner.useDelimiter(",");

            String tipoConta = linhaScanner.next();
            int agencia = linhaScanner.nextInt();
            int numero = linhaScanner.nextInt();
            String titular = linhaScanner.next();
            double saldo = linhaScanner.nextDouble();

            //System.out.println(tipoConta + agencia + numero + titular + saldo);

            String valorFormatado = String.format("%s - %04d-%08d, %s: %010.2f", tipoConta, agencia, numero, titular, saldo);
            System.out.println(valorFormatado);

            linhaScanner.close();
        }

        scanner.close();
    }
2 respostas
solução!

Olá,

tente usar Locale.setDefault(Locale.US) logo abaixo do main

Muito grato Luciano!