Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: paramonso en 11 de Octubre 2018, 12:08

Título: Java: cómo centrar texto en un campo de consola longitud con String.format()
Publicado por: paramonso en 11 de Octubre 2018, 12:08
Hola. Dejo el código para centrar texto en un campo de una longitud dada.
Ejemplo: Tenemos un campo de 20 espacios y en ese campo se ha de centrar un texto de 8 caracteres. El código seria este.

Código: [Seleccionar]

public class CentrarTexto
{
    public static void main(String[] args)   {
        int ancho = 20;//Tamaño del campo a ocupar por la cadena
        String s = "12345678";//Texto
        int lonText=s.length();//longitud del texto
        //Se divide el ancho/2  y tamañoCampo/2
        //en este caso serian 5 y 2 se suman y da 5+2=7 sacamos la mitad del tamaño a ocupar
        int tamañoCampo=(ancho/2)+(lonText/2);
         
        //Se da el primer formateo a (s) con el tamañoCampo=7 lo que seria [***1234]
        //ponemos asteriscos por la izquierda para llenar el total del campo
        //String.format("%7s",s) Justifica el texto a la derecha rellenado con espacios
        String m= String.format("%" + tamañoCampo + "s", s);
        s = String.format("%" + tamañoCampo + "s", s).replace(" ","*");
         
        System.out.print("["+s+"] Primer formateo\n");
        System.out.print("|"+m+"|Primer formateo\n");
        //Se da el segundo formateo a (s) con ancho.Tenemos que s="***1234"=7
        //Con el segundo formato se quedaria s="***1234***"=10
        //ponemos asteriscos por la derecha para llenar el total del campo
        //String.format("%-10s",s) Justifica el texto a la izquierda rellenado con espacios
        s = String.format("%-" + ancho  + "s", s).replace(" ","*");
        m= String.format("%-" + ancho + "s", m);
        System.out.print("["+s+"] Segundo formateo ");
         System.out.print("\n|"+m+"|Segundo formateo\n\n");
    }

}


Espero que lo pueda aprovechar alguien.
 ;)
Título: Re:Java: cómo centrar texto en un campo de consola longitud con String.format()
Publicado por: Ogramar en 06 de Agosto 2019, 22:23
¡Gracias por el aporte!