que manejo hackerrank funciones declarar caracteres cadenas java formatting

hackerrank - manejo de cadenas en java



Formato de salida Java para cadenas (6)

EDITAR: Esta es una respuesta extremadamente primitiva, pero no puedo eliminarla porque fue aceptada. Ver las respuestas a continuación para una mejor solución, aunque

¿Por qué no generar una cadena de espacios en blanco de forma dinámica para insertar en la declaración?

Entonces, si quieres que todos comiencen con el personaje número 50 ...

String key = "Name ="; String space = ""; for(int i; i<(50-key.length); i++) {space = space + " ";} String value = "Bob/n"; System.out.println(key+space+value);

Pon todo eso en un bucle e inicializa / establece las variables "clave" y "valor" antes de cada iteración y estás dorado. También usaría la clase StringBuilder , que es más eficiente.

Me preguntaba si alguien me puede mostrar cómo usar el método de formato para Java Strings. Por ejemplo, si quiero que el ancho de todos mis resultados sea el mismo

Por ejemplo, supongamos que siempre quiero que mi salida sea la misma

Name = Bob Age = 27 Occupation = Student Status = Single

En este ejemplo, todos los resultados están formateados cuidadosamente uno debajo del otro; ¿Cómo puedo lograr esto con el método de formato?


Para responder a su pregunta actualizada, puede hacer

String[] lines = ("Name = Bob/n" + "Age = 27/n" + "Occupation = Student/n" + "Status = Single").split("/n"); for (String line : lines) { String[] parts = line.split(" = +"); System.out.printf("%-19s %s%n", parts[0] + " =", parts[1]); }

huellas dactilares

Name = Bob Age = 27 Occupation = Student Status = Single


Para valores decimales, puede usar DecimalFormat

import java.text.*; public class DecimalFormatDemo { static public void customFormat(String pattern, double value ) { DecimalFormat myFormatter = new DecimalFormat(pattern); String output = myFormatter.format(value); System.out.println(value + " " + pattern + " " + output); } static public void main(String[] args) { customFormat("###,###.###", 123456.789); customFormat("###.##", 123456.789); customFormat("000000.000", 123.78); customFormat("$###,###.###", 12345.67); } }

y la salida será:

123456.789 ###,###.### 123,456.789 123456.789 ###.## 123456.79 123.78 000000.000 000123.780 12345.67 $###,###.### $12,345.67

Para más detalles mira aquí:

http://docs.oracle.com/javase/tutorial/java/data/numberformat.html


Si quiere un mínimo de 4 caracteres, por ejemplo,

System.out.println(String.format("%4d", 5)); // Results in " 5", minimum of 4 characters

Pero realmente, debes aprender a comprender la documentación.


@Override public String toString() { return String.format("%15s /n %15d /n %15s /n %15s",name,age,Occupation,status); }


System.out.println(String.format("%-20s= %s" , "label", "content" ));

  • Donde% s es un marcador de posición para tu cadena.
  • El ''-'' hace que el resultado esté justificado a la izquierda.
  • 20 es el ancho de la primera cuerda

La salida se ve así:

label = content

Como referencia, recomiendo Javadoc en la sintaxis del formateador