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 3Este é 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... doneImprimindo 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:
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\nnoprintf)%%— 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
printquando queriaprintln. A saída fica em uma única linha sem separador. - Misturar
+e,noprintf. Os marcadores da string de formato são preenchidos por argumentos adicionais, não por concatenação. Useprintf("%s scored %d", name, score), nãoprintf("%s scored", name + score). - Esquecer
%nnoprintf. 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.