PDA

View Full Version : [JAVA] indentare testo su console


Oceans11
25-10-2006, 13:52
ciao a tutti.

beh il titolo praticamente dice tutto!
ho stringhe da stampare a video su console con System.out
la stringa è una sequenza di diversi dati e vorrei allinearli tutti (ogni tipo di dato) a sinistra.
per esempio:

nomecorto numero_______lungo carattere
nome________lungo numerocorto carattere
ora chiedo, esiste un modo elegante per farlo??una soluzione semplice è decidere la lunghezza max di ogni dato e riempirlo con spazi se più corto!
però non mi sembra molto buono come approccio.

grazie per eventuali suggerimenti, ciao!

PS: probabilmente non dovevo usare il tag code ma non sapevo come allineare il testo!

andbin
25-10-2006, 14:14
ciao a tutti.

beh il titolo praticamente dice tutto!
ho stringhe da stampare a video su console con System.out
la stringa è una sequenza di diversi dati e vorrei allinearli tutti (ogni tipo di dato) a sinistra.
per esempio:

nomecorto numero_______lungo carattere
nome________lungo numerocorto carattere
ora chiedo, esiste un modo elegante per farlo??una soluzione semplice è decidere la lunghezza max di ogni dato e riempirlo con spazi se più corto!
però non mi sembra molto buono come approccio.Credo che la soluzione migliore sia proprio quella di stabilire, per ogni campo, una lunghezza massima e quindi stampare degli spazi in più dove servono.

Si potrebbe utilizzare un semplice metodo come questo:
public static String leftAlign (String str, int size)
{
int len = str.length () > size ? size : str.length ();

char[] buf = new char[size];

str.getChars (0, len, buf, 0);

while (len < size)
buf[len++] = ' ';

return new String (buf);
}
Da richiamare ad esempio con:
System.out.println (leftAlign ("ciao", 10));

Oceans11
25-10-2006, 18:42
grazie mille!