Espai de sortida a Java

Els programes Java sense interfície gràfica d'usuari utilitzen la línia d'ordres d'un ordinador per interactuar amb l'usuari. És vital que la sortida de línia d'ordres del programa tingui un format i un espai adequats perquè sigui intel·ligible per a l'usuari. Podeu espaiar la sortida manualment amb bucles o mitjançant la classe Formatter de Java.

Tipus de lletra monoespacial

Els tipus de lletra monoespaciats són tipus de lletra en què cada lletra ocupa la mateixa quantitat d’espai que les altres lletres de la font. Per exemple, en un tipus de lletra monoespai, el caràcter "i" ocupa la mateixa quantitat d'espai que el caràcter "m". L’execució de programes Java en un entorn amb tipus de lletra monoespai, com la línia d’ordres de Windows o el terminal Macintosh, us permet organitzar i formatar el text en columnes ordenades comptant el nombre de caràcters de cada fila.

Espai manual

La manera més senzilla d’espaciar correctament la vostra sortida a Java és afegir un espaiat manual. Per exemple, per generar tres nombres enters diferents, "i", "j" i "k", amb un espai entre cada nombre enter, utilitzeu el codi següent:

System.out.println (i + "" + j + "" + k);

Si els valors de "i", "j" i "k" són 25, 6 i 31, respectivament, el programa emet "25 6 31". El principal inconvenient d’aquest mètode és la manca de consideració pel nombre de caràcters de cada nombre enter. Si imprimiu tres files de columnes espaiades uniformement, la segona columna no tindrà la mateixa amplada que les dues primeres. Si la fila següent mantingués els valors 6, 8 i 2, les columnes estarien completament desalineades.

Espai formatador

La classe Formatter de Java us permet formatar dades abans de la seva sortida. Amb el formatador, podeu definir l’amplada màxima d’un valor i, a continuació, el formatador tapa automàticament el valor amb espais buits per assegurar-se que tingui la mateixa amplada. Si emeteu diversos valors amb les mateixes opcions de format, podeu assegurar-vos que ocuparan el mateix espai a la línia de sortida. Enviar un segment de text formatat és senzill, en lloc d’utilitzar "System.out.print ()", "utilitzeu" System.out.format (). " El mètode de format té dues entrades en lloc de l'entrada única que utilitza el mètode d'impressió. La primera entrada és una cadena que representa el format que s’hauria d’aplicar a la sortida i la segona entrada és la sortida mateixa. Per imprimir tres valors enters amb un màxim de tres caràcters a cada un i un sol espai intermedi, utilitzeu el codi següent:

System.out.format ("% 4d", i); System.out.format ("% 3d", j); System.out.format ("% 3d", k); System.out.println ();

El "% 4" de la primera secció de la cadena de format indica que el programa hauria d'utilitzar quatre caràcters per imprimir cada enter. Si l’enter només té dos caràcters, els altres dos caràcters seran espais en blanc. La "d" de la cadena de format indica que el valor de sortida és un nombre enter decimal. La línia final de codi "System.out.println ()" mou el cursor a la següent línia de codi.

Espai entre bucles

La classe de format requereix un ampli coneixement de les cadenes utilitzades per definir el format de sortida. No obstant això, podeu utilitzar una combinació de bucles per aconseguir un espaiat més complex sense la necessitat de cadenes de format complicades. Els bucles són particularment útils quan s’intenta aconseguir un espaiat uniforme entre diverses cadenes. Per exemple, podeu agafar dues matrius de cadenes i mostrar-ne el contingut en dues columnes paral·leles mitjançant dos bucles. El primer bucle recorre les dues matrius i troba la longitud de la cadena més llarga de qualsevol de les matrius. El segon bucle torna a passar per les matrius. Imprimeix la cadena de la primera matriu i després resta la longitud de la primera cadena de la longitud de la cadena més llarga de qualsevol matriu per esbrinar quants espais ha de col·locar abans de la següent columna. A continuació, el programa imprimeix aquest nombre d'espais amb el següent bucle imbricat:

per a (int i = 0; i <numSpaces; i ++) {System.out.print (""); }

Després d'imprimir el nombre correcte d'espais, imprimeix la segona cadena. Això crea dues columnes de cadenes espaiades de manera uniforme sense la necessitat del formatador de Java.