25%OFF no 1º ano | 50%OFF No 2º ano

Últimos dias!

Últimos dias!

00

DIAS

00

HORAS

00

MIN

00

SEG

Converter int para String em Java

Converter int para String em Java

Completei mais um curso na Alura e aumentei a minha pontuação:


String aluno = “Alex Felipe”; 
int pontos = 12000;

Para imprimir a minha pontuação basta concatenar a variável aluno + pontos dentro de um sysout:

Banner da Black Friday da Alura com destaque para até 50% de desconto em cursos, válido até 29/11. Transforme a sua carreira com o maior desconto do ano, matricule-se já!

System.out.println(aluno + " - " + pontos);

Mas, como eu poderia fazer com que o aluno e a pontuação fossem uma variável só? É simples! A mesma coisa, basta "converter" a variável inteira (int) para String:

String descricao = aluno + " - " + pontos;

Mas agora entrei no instrutor Guilherme Silveira, e olha os pontos dele:

> Guilherme Silveira - 1893769 

Olhando de cara qual é o valor desse número? Um milhão e oitocentos mil? Dezoito milhões?Cento e oitenta milhões? Vou ter que contar com o dedo na tela para saber o valor exato, muito chato e é certeza que eu vou errar!

Para separar a pontuação por casas podemos utilizar a classe NumberFormat:


String aluno = "Guilherme Silveira"; 
int pontos = 1893769;
String descricao = aluno + " - " + NumberFormat.getInstance().format(pontos); System.out.println(descricao);

Resultado:

> Guilherme Silveira - 1.893.769

Ótimo! O número foi formatado como esperado, porém na maquina do João o resultado foi:

> Guilherme Silveira - 1,879,654

Calma aí. Está dependendo da máquina??? Isso ocorre pois o getInstance devolve um formatador baseado na linguagem configurada na máquina. Para informar uma região específica basta definir uma localização, um Locale.

No meu caso, quero a língua portuguesa ("pt"), com a variação do português brasileiro ("BR").


Locale brasil = new Locale("pt", "BR");
String descricao = aluno + " - " + NumberFormat.getInstance(brasil).format(pontos); System.out.println(descricao);

Resultado:

> Guilherme Silveira - 1.893.769 

Agora tanto a minha máquina como a do meu colega, ou ainda, a máquina de produção imprimem o mesmo resultado.

Quando começamos a programar, aprendemos a concatenar e parece o suficiente… mas mesmo em uma tarefa simples é importante seguirmos 3 passos:

  • números acima de 999 ficaram legíveis?
  • use o Locale adequado.
  • teste em mais de uma maquina.

A classe Locale e o conceito de regionalização é tambem explicado com mais detalhes nesse post da Caelum.

Alex Felipe
Alex Felipe

Alex é instrutor e desenvolvedor e possui experiência em Java, Kotlin, Android. Atualmente cria conteúdo no canal https://www.youtube.com/@AlexFelipeDev.

Veja outros artigos sobre Programação