es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Java: Alinear texto a la extrema izquierda/principio y a la extrema derecha/final en una cadena y dejar espacio en el centro.

Estoy teniendo una cadena en Java que estoy imprimiendo y tiene título y cantidad, por ejemplo a continuación:

Rice Ksh 150
Cooking Oil Ksh 200
Skinless White Meat Ksh 450
Honey Ksh 270
Cottage Cheese Ksh 539

Lo que me gustaría lograr cuando lo imprimo es algo como esto a continuación:

Rice                Ksh 150
Cooking Oil         Ksh 200
Skinless White Meat Ksh 450
Honey               Ksh 270
Cottage Cheese      Ksh 539

A continuación, se muestra lo que he intentado, pero no funciona. ¿Hay otra función que pueda usar para justificar la salida donde el título de los elementos está a la extrema izquierda/inicio y el monto está a la extrema derecha/final?

for (Receipt receipt : receiptList) {

    String output = "";

    String itemAmount = String.format("%s %s %s", receipt.getItem(),
                "Ksh", receipt.getAmount());

    for (int i = 0; i < itemAmount.length(); i++){
        char c = itemAmount.charAt(i);
        if (c==' '){
            output += " ";
        }else {
            output += "" + c;
        }
    }

    // imprimir salida aquí
}
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para obtener la salida deseada donde el título de los elementos esté justificado a la izquierda y la cantidad a la derecha, puedes utilizar la función String.format() con espacios reservados para el ancho del título y la cantidad. Aquí tienes un ejemplo de implementación:

    for (Receipt receipt : receiptList) {
        String output = String.format("%-20s %10s", receipt.getItem(), "Ksh " + receipt.getAmount());
        System.out.println(output);
    }
    

    En la función String.format(), el espacio reservado -20s significa justificar a la izquierda la cadena con un ancho de 20 caracteres, mientras que el espacio reservado 10s significa justificar a la derecha la cadena con un ancho de 10 caracteres. Puedes ajustar estos anchos según sea necesario para que la salida se vea como deseas.

Comments are closed.