System.out.printf

Java

09/04/2009

Olá a todos. Estava estudando, 'futucando' o código do programa abaixo, quando me surgiram algumas dúvidas sobre o método 'System.out.printf'. Vejam:
/* Programa de adição simples, baseado no programa "Addition.java" do livro do Deitel (6a edição, pág. 33); 
   Criado em 12/03/06 */

import java.util.Scanner;

public class Adicao
{
	public static void main (String args[])
	{
		Scanner input = new Scanner (System.in); 

		int numero1;
		int numero2;
		int soma;

		System.out.print ("\n"); 

		System.out.print ("Digite o 1o inteiro: ");
		numero1 = input.nextInt();

		System.out.print ("Digite o 2o inteiro: ");
		numero2 = input.nextInt();

		soma = numero1 + numero2;

System.out.printf ("A soma é: ", soma);    // Por que não funcionou?

/* O Deitel usa o método 'System.out.printf ("A soma e %d\n", soma);'
		1) Sou obrigado a usar "%d"?
		2) Por que outros métodos, como 'System.out.print' e 'println' não
		   funcionaram corretamente? */

		System.out.print ("\n");
	}
}
E como eu faço para 'identar' o código aqui no forum? :idea: Um forte abraço a todos, [quote="[color=green][b]2010-01-21: mensagem editada por [i]simu[/i][/b][/color]"] [color=darkgreen]- adicionados os tags [b][co[/b][b]de][/b][/color]
Paulo Cassiano

Paulo Cassiano

Curtidas 0

Melhor post

Vitor Pamplona

Vitor Pamplona

09/04/2009

1) Sou obrigado a usar "%d"? Sim, vc precisa indicar onde a tua variável soma vai ficar na String. 2) Por que outros métodos, como 'System.out.print' e 'println' não funcionaram corretamente? Assim eles não funcionam: System.out.print("A soma é: ", soma) Vc precisa colocar o operador de adição: System.out.printf ("A soma é: " + soma)
GOSTEI 1

Mais Respostas

Paulo Cassiano

Paulo Cassiano

09/04/2009

Beleza! O que não ficou claro pra mim é como usar esses caracteres, tipo "%d", pois a explicação do Deitel é muito prolixa... ALLguém pode me explicar melhor como essas coisas funcionam?? :roll: Um forte abraço a todos,
GOSTEI 0
Vitor Pamplona

Vitor Pamplona

09/04/2009

na linha System.out.printf a string de parametro e montada de forma onde o %d e substituido por uma variavel apos a virgula System.out.printf ("Nome: %d", nome); saida: Nome: Victor ja nas System.out.print e System.out.println a string e montada atraves de concatenação, onde e normal por exemplo: System.out.print("Nome: " + nome + " Sobrenome: " + sobrenome); saida: Nome: Victor Sobrenome: Hugo
GOSTEI 0
Marcos Pereira

Marcos Pereira

09/04/2009

[url=http://java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html#syntax]Format String syntax[/url] valeuz...
GOSTEI 0
Marcos Pereira

Marcos Pereira

09/04/2009

boas estou agora aqui a começar em java e vi este tópic , ja que tabém estava com algumas duvidas sobre a matéria.... li mais um pouco e em vez de %d no caso exmplificado não seria s% para String só essa dúvida :neutral:
GOSTEI 0
Marcos Pereira

Marcos Pereira

09/04/2009

[quote="NoStress"]boas estou agora aqui a começar em java e vi este tópic , ja que tabém estava com algumas duvidas sobre a matéria.... li mais um pouco e em vez de %d no caso exmplificado não seria s% para String só essa dúvida :neutral:
exatamente! %d = formatado como decimal inteiro %s = formatado como texto (string)
GOSTEI 0
Gregui Shigunov

Gregui Shigunov

09/04/2009

eu nunca usei essa função "printf", sempre usei "print" e "println". lembro dessa função em C++
GOSTEI 0
Thiago Mello

Thiago Mello

09/04/2009

Sempre que usar o System.out.printf deve-se utilizar ou %d para inteiro, %s para String e %.2f para double. exemplo: String a = "Tal"; double b = 45.67; int c = 60; System.out.printf("%s - %.2f - %d\n", a, b, c ); O valor de [b]a[/b] foi passado para [b]%s[/b] O valor de [b]b[/b] foi passado para [b]%.2f[/b] O valor de [b]c[/b] foi passado para [b]%d[/b] Saida: Tal - 45.67 - 60[b][/b][b][/b]
GOSTEI 0
Marco Biscaro

Marco Biscaro

09/04/2009

[quote="pcassiano"] E como eu faço para 'identar' o código aqui no forum? :idea:
Use as tags "code", colocando entre colchetes:
texto formatado para código
    posso identá-lo.
    basta usar [code] onde começa o código
    e usar 
[/code] onde acaba!
GOSTEI 0
Carlos Heuberger

Carlos Heuberger

09/04/2009

Complementando, a mensagem acima ficaria: -------------------------------------------------------------------------------- Use as tags "code", colocando entre colchetes: [b][code[/b][b]][/b] texto formatado para código posso identá-lo. basta usar [color=black][code[/color]] onde começa o código e usar [b][/code][/b] [/code] onde acaba! -------------------------------------------------------------------------------- []]
GOSTEI 0
Roberto Tavares

Roberto Tavares

09/04/2009

Aproveitando o assunto... qual é o símbolo de tipo para formatar um long? %s --> string %c --> char %f --> float %d --> decimal inteiro E para um long, o que usar??? Obrigado e abraços.
GOSTEI 0
Carlos Heuberger

Carlos Heuberger

09/04/2009

[quote="falecomroberto"]Aproveitando o assunto... qual é o símbolo de tipo para formatar um long? %s --> string %c --> char %f --> float %d --> decimal inteiro E para um long, o que usar??? Obrigado e abraços.
voce mesmo escreveu: "%d --> decimal inteiro" e o long é um decimal inteiro (mas não um [b]int[/b])! [i](OK, problema de nomenclatura)[/i] O [b]%d[/b] serve para todos os tipos inteiros: byte, Byte, short, Short, int, Integer, long, Long, e BigInteger [i](na verdade somente para os objetos (wrappers), mas os primitivos são convertidos por autoboxing)[/i] Veja a documentação do [url="http://java.sun.com/javase/6/docs/api/java/util/Formatter.html"]java.util.Formatter[/url] []]
GOSTEI 0
POSTAR