¿Cómo puedo fácil y limpiamente Grabado objetos utilizando un método toString, que también están alineadas?

malthe.w:

Tengo un ArrayList de miembros, cada uno con su propia información como el nombre, edad, fecha de nacimiento, etc., que se llama a un método toString cuando se imprime a la terminal.

Aquí está el código:

@Override
    public String toString() {
        return "|ID: " + id + "| Name: " + name + "| Age: " + 
              calculateAge(age, LocalDate.now()) + "| Tlf.: " + tlfNo + "| Active: " + 
              activeMember + "| Next payment: " + nextPayment + "|";
    }

Y aquí está la salida:

|ID: 12| Name: Casper| Age: 49| Tlf.: 12345678| Active: true| Next payment: 2018-02-12|
|ID: 13| Name: Allan| Age: 69| Tlf.: 12345678| Active: true| Next payment: 2018-01-12|
|ID: 16| Name: Christina| Age: 100| Tlf.: 12345678| Active: false| Next payment: 2018-02-04|
|ID: 19| Name: RICK| Age: 49| Tlf.: 12345678| Active: false| Next payment: 2018-04-14|

¿Cómo consigo las diferentes piezas de información para alinear una encima de la otra?

Veselin Davidov:

Usted puede hacer algo como:

 public String toString() {
        return String.format("|id: %10d |Name: %30s| Age: %02d | Tlf.: %d| Active: %s| Next Payment: %s |", id, getNameTrimmed() , age , tlfNo ,    activeMember, nextPayment );
 }

 private  String getNameTrimmed(){
    if(name.length()>30) {
        return name.substring(0,27)+"...";
    }
    return name;
}

De esta manera la identificación tendrá 10 caracteres (que todavía se romperá el formato si usted tiene identificadores más largos) El nombre tendrá 30 por lo que necesita para agregar un método para darle nombre de 30 caracteres

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=207948&siteId=1
Recomendado
Clasificación