2010-06-20 38 views

Respuesta

20

El first one escribe en el stdout y el second one devuelve un objeto String.

cuál utilizar depende del propósito único. Si desea visualizar la cadena en stdout (consola), entonces use la primera. Si desea obtener un control de la cadena formateada para utilizarla más en el código, utilice la segunda.

1

String.format formatos cuerdas, no mostrarlos. Creo que quieres decir System.out.println(String.format("......", ....)) o alguna construcción similar?

1

String.format devuelve una cadena con formato. System.out.printf también imprime la cadena formateada.

8

String.format devuelve una nueva Cadena, mientras que System.out.printf solo muestra la cadena recién formateada a System.out, a veces conocida como la consola.

Estos dos fragmentos de código son funcionalmente equivalentes:

String formattedString = String.format("%d is my favorite number", 42); 
System.out.print(formattedString); 

y

System.out.printf("%d is my favorite number", 42); 
+6

A pesar de que este post es muy viejo, sólo quiero añadir una cosa a su respuesta: Los dos fragmentos no son exactamente equivalentes. System.out.printf no inserta una nueva línea. – thecoder16

+0

He intentado tanto, pero no parece ni printf ni formato, se crea una nueva línea –

+0

@SKumar correcta, pero 'thecoder16' se refiere al uso de Greg de 'println', que, cuando se imprime una cadena, impresiones de dicha cadena a continuación, termina la línea, agregando un separador de línea (esencialmente una nueva línea). El uso de 'printf' no lo hace, y tampoco lo hace el método' .format'. –

1

Estos dos métodos presentan el mismo comportamiento exacto. Podemos usar el formato (...) con String, Java.util.Formatter (J2SE 5) y también con PrintWriter.