Saltar al contenido

¿Cómo usar java.String.format en Scala?

Solución:

Si bien todas las respuestas anteriores son correctas, todas están en Java. Aquí hay un ejemplo de Scala:

val placeholder = "Hello %s, isn't %s cool?"
val formatted = placeholder.format("Ivan", "Scala")

También tengo una publicación en el blog sobre cómo hacer format como el de Python % operador que podría ser útil.

No es necesario utilizar números para indicar la posición. De forma predeterminada, la posición del argumento es simplemente el orden en el que aparece en la cadena.

Aquí hay un ejemplo de la forma correcta de usar esto:

String result = String.format("The format method is %s!", "great");
// result now equals  "The format method is great!".

Siempre usarás un % seguido de otros caracteres para que el método sepa cómo debe mostrar la cadena. %s es probablemente el más común, y solo significa que el argumento debe tratarse como una cadena.

No enumeraré todas las opciones, pero daré algunos ejemplos solo para darte una idea:

// we can specify the # of decimals we want to show for a floating point:
String result = String.format("10 / 3 = %.2f", 10.0 / 3.0);
// result now equals  "10 / 3 = 3.33"

// we can add commas to long numbers:
result = String.format("Today we processed %,d transactions.", 1000000);
// result now equals  "Today we processed 1,000,000 transactions."

String.format solo usa un java.util.Formatter, por lo que para obtener una descripción completa de las opciones, puede ver los javadocs del formateador.

Y, como menciona BalusC, verá en la documentación que es posible cambiar el orden predeterminado de los argumentos si es necesario. Sin embargo, probablemente la única vez que necesitaría / querría hacer esto es si está usando el mismo argumento más de una vez.

En lugar de mirar el código fuente, debería leer la sintaxis javadoc String.format () y Formatter.

El formato del valor se especifica después del%. Por ejemplo, para un entero decimal es dy para String es s:

String aString = "world";
int aInt = 20;
String.format("Hello, %s on line %d",  aString, aInt );

Producción:

Hello, world on line 20

Para hacer lo que intentó (use un índice de argumentos), usa: *n*$,

String.format("Line:%2$d. Value:%1$s. Result: Hello %1$s at line %2$d", aString, aInt );

Producción:

Line:20. Value:world. Result: Hello world at line 20
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *