W3docs

Saída em Java: print, println e printf

Imprima texto e valores no console com System.out.print, println e printf, e entenda a diferença entre eles.

A forma padrão de exibir saída em um programa Java é através do System.out, o fluxo de saída padrão disponível para todo programa. Ele expõe três métodos que você usará constantemente: print, println e printf. Eles diferem apenas na forma como tratam quebras de linha e formatação.

System.out.println

println ("imprimir linha") escreve seu argumento seguido de uma quebra de linha. Cada chamada avança para a próxima linha:

System.out.println("Line 1");
System.out.println("Line 2");
System.out.println("Line 3");

Saída:

Line 1
Line 2
Line 3

Este é o método que você mais usará.

System.out.print

print é igual ao println, mas sem a quebra de linha no final. Útil quando você quer vários valores em uma única linha:

System.out.print("Loading");
System.out.print(".");
System.out.print(".");
System.out.print(".");
System.out.println(" done");

Saída:

Loading... done

Imprimindo valores, não apenas strings

Tanto print quanto println aceitam qualquer tipo, não apenas strings. O runtime converte números, booleanos, caracteres e até objetos em uma string para você:

System.out.println(42);
System.out.println(3.14);
System.out.println(true);
System.out.println('A');

Para objetos arbitrários, o runtime chama o método toString() deles (abordado mais adiante em OOP).

Concatenação de strings com +

O operador + une strings — e se você misturar um número ou outro valor, o Java o converte automaticamente:

String name = "Ada";
int age = 36;
System.out.println("Hello, " + name + "! You are " + age + " years old.");

Saída:

Hello, Ada! You are 36 years old.

System.out.printf — saída formatada

printf ("imprimir formatado") é o equivalente Java do printf da linguagem C. Você passa uma string de formato com marcadores e os valores a substituir:

java— editable, runs on the server

Os marcadores mais comuns:

  • %s — string
  • %d — inteiro
  • %f — número de ponto flutuante
  • %.2f — float com 2 casas decimais
  • %5d — inteiro em um campo de 5 caracteres de largura, preenchido com espaços à esquerda (alinhado à direita)
  • %-5d — inteiro em um campo de 5 caracteres de largura, preenchido com espaços à direita (alinhado à esquerda)
  • %n — quebra de linha específica da plataforma (use isto em vez de \n no printf)
  • %% — um sinal % literal

System.err — imprimindo erros

Existe um fluxo paralelo para saída de erros: System.err. Ele suporta os mesmos métodos print, println e printf. Por convenção, a saída normal vai para System.out e as mensagens de erro vão para System.err:

System.out.println("Loaded 3 records.");
System.err.println("Warning: could not parse line 5.");

Em um terminal, ambos os fluxos aparecem juntos, mas ferramentas que redirecionam a saída (> file.txt) podem separá-los.

Erros comuns

  • Usar print quando queria println. A saída fica em uma única linha sem separador.
  • Misturar + e , no printf. Os marcadores da string de formato são preenchidos por argumentos adicionais, não por concatenação. Use printf("%s scored %d", name, score), não printf("%s scored", name + score).
  • Esquecer %n no printf. Sem ele, sua saída fica toda junta.

O que vem a seguir

Comentários em Java apresenta as três sintaxes de comentários, incluindo Javadoc — a forma padrão de documentar código Java.

Prática

Prática
Qual método escreve seu argumento SEM uma quebra de linha no final?
Qual método escreve seu argumento SEM uma quebra de linha no final?
Was this page helpful?