Pregunta

En Python puede usar una tupla en una declaración de impresión formateada y los valores de la tupla se usan en las posiciones indicadas en la cadena formateada. Por ejemplo:

>>> a = (1,"Hello",7.2)
>>> print "these are the values %d, %s, %f" % a
these are the values 1, Hello, 7.200000

¿Hay alguna forma de usar cualquier matriz o colección en una declaración printf de java de una manera similar?

He consultado la documentación y parece que ha incorporado soporte para algunos tipos como el Calendario, pero no veo nada para las colecciones.

Si esto no se proporciona en java, ¿hay algún idioma de java que se usaría en un caso como este donde está poblando colecciones y luego imprimiendo los valores de muchas colecciones utilizando una cadena de formato (que no sea solo un ciclo anidado)? ?

¿Fue útil?

Solución

printf tendrá una declaración en la línea de:

public PrintString printf(String format, Object... args);

... significa lo mismo que [] . La diferencia es que ... permite a la persona que llama omitir la creación explícita de una matriz. Entonces considere:

    out.printf("%s:%s", a, b);

Eso es el equivalente de:

    out.printf("%s:%s", new Object[] { a, b });

Entonces, volviendo a tu pregunta, para una matriz, puedes simplemente escribir:

    out.printf("%s:%s", things);

Para una colección:

    out.printf("%s:%s", things.toArray());

Otros consejos

Le puede interesar el MessageFormat también.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top