[RESOLVIDO] Dúvida em questão

2 respostas
yastorm

Estive fazendo um simulado, e me deparei com a questão abaixo:

public class TesteStatement {

	public static void main(String[] args) {
		System.out.printf("12%1$s", "13%1$s", "14%1$s");
	}
}
O resultado disso é:
1213%1$s

Alguém poderia me explicar por quê desse resultado? Não consegui entender.

[]´s

2 Respostas

tinorberto

Exemplo..

System.out.printf(">>%2$7d<<", i, j);  //saida >>    321<

        //$ marcador de posição ou seja aonde o valor vai aparecer
        // 7 valor do tamanho do campo, se for menor completa com espa~ço branco
        //d tipo  d integer b boolean s tring
        // % marca o inicio da formatação (obrigatorio)

 System.out.printf("12%1$s", "13%1$s", "14%1$s");  
 
/*
  12  valor a ser impresso %1 parametro a ser usado   $ local aonde entre parametro s tipo string
  
então no lugar do $ colocamos a sring 13%1$s pois ela é o parametro 1
12 13%1$s  

se trocarmos  
  */

 System.out.printf("12%2$s", "13%1$s", "14%1$s");   // saida 1214%1$s

Boa questão da para confundir, pense nos parâmetros 1 e 2 como string.. flw

yastorm

Apesar da boa explicação sua, fiquei um bom tempo pra sacar a pegadinha. Muito boa a explicação.

Muito obrigado cara :smiley:

[]´s

Criado 8 de abril de 2010
Ultima resposta 8 de abr. de 2010
Respostas 2
Participantes 2