Autor Tema: Java: cómo centrar texto en un campo de consola longitud con String.format()  (Leído 10496 veces)

paramonso

  • Intermedio
  • ***
  • Mensajes: 241
  • El ignorante afirma, el sabio duda y reflexiona.
    • Ver Perfil
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.
 ;)
« Última modificación: 04 de Agosto 2019, 23:35 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
¡Gracias por el aporte!

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".