TransWikia.com

Dar espacio predeterminado para mostrar texto en Java

Stack Overflow en español Asked by HeckDan on December 13, 2020

Se me a presentado varias veces que quiero mostrar varios datos por la consola de una manera ordenada y los distintos tamaños de estos elementos hacen que se vean mal… ¿como hago para que en cada parte para el texto este determinada por un cierto espaciado?

Ejemplo: mostrando en pantalla

Nombre: / Código:
/ /
/Abc/ 123
/Eiu/ 12
/Aaaaaa / 3333333

La idra es que debe haber un espacio ya establecido y que esas rayitas que encajonan siempre tengan el mismo tamaño

Ejemplo:
Nombre: / Código:
/ /
/ Abc/ 123
/ Eiu/ 12
/Aaaaaa/ 3333333

Nota: Cuando llegue a mi pc pongo un ejemplo con código.

One Answer

Te pongo como trabajo yo y ya utilizas lo que te funcione.

 /**
     * Formatea un texto  en base al espacio que se le asigne de manera siguiente:
     * <br>totalEspacio=10
     * <br>texto='Hola'
     * <br>caracter='|'
     * 
     * <br><br>Resultado: <p> "Hola_____|"</p> (El caracter '_' representa un
     * espacio en blanco.)
     * <br>
     * Si el texto supera a el espacio asignado entonces se acortara con '...' 
     * más el caracter de separación asignado
     * 
     * @param totalEspacio El espacio total del que se quitara el string de separación
     * y el tamaño del texto. El mínimo permitido es 5.
     * @param texto
     * @param caracterDeSeparación
     * @return
     */
    public static String formatearEspacios(int totalEspacio, String texto, String caracterDeSeparación){
        try {


            String espacio = "";
            String cadenaNueva = "";
            if (totalEspacio>texto.length()) {
                int espaciosEnBlanco = totalEspacio-texto.length();
                for (int i = 0; i < espaciosEnBlanco-1; i++) {
                    espacio+=" ";
                }
                espacio+=(caracterDeSeparación);
                cadenaNueva += texto+espacio;
            }else{
                String subTexto = texto.substring(0, totalEspacio-4);

                espacio+="..."+caracterDeSeparación;
                cadenaNueva += subTexto+espacio;

            }

            return cadenaNueva;

        } catch (ExcepcionPersonalizada ex) {
            Logger.getLogger(Textos.class.getName()).log(Level.SEVERE, null, ex);
        }
        return null;
    }

Yo lo implemento dentro de una clase Textos y lo llamo de esta manera:

String a  = Textos.formatearEspacios(12, rvo.getCodigoProveedor(), "|");
String b  = Textos.formatearEspacios(25, rvo.getNombre(), "|");
String c  = Textos.formatearEspacios(25, rvo.getCodigoInterno(), " ");
System.out.println(a+b+c);

Answered by Legna on December 13, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP