Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    106

    [Java] allineamento output in una stampa

    Ciao ragazzi ho una domanda probabilmente stupida da farvi.
    In poche parole non riesco a stampare a video in maniera corretta una tabella delle moltiplicazioni....l'output mio e' cosi:

    1 2 3 4
    1 1 2 3 4
    2 2 4 6 8
    3 3 6 9 12
    4 4 8 12 16

    Io vorrei allineare da destra i numeri della stampa. Ovviamente potrei riuscire a stampare nella maniera corretta ma la soluzione che ho in mente io (cioè qualche controllo composto da if)è sicuramente sbagliata perchè troppo lunga....in c ci sono quei bei comandi tipo \t o cose simili...in java come posso fare???...esiste una maniera più veloce (simile a quella di c)per stampare allineato??
    Cmq per stampare tutto cio' io ho scritto questo codice:

    codice:
    		int i = in.readInt("Inserire numero");
    		
    		out.print(" ");
    		for(int q = 1 ; q <= i; q++ )
    			out.print(" " + q);
    		out.println();
    		
    		for(int w = 1; w <= i; w++){
    			out.print(w);
    			for(int e = 1; e <= i; e++){
    				out.print(" " + w * e);
    			}
    			out.println();
    		}

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [Java] allineamento output in una stampa

    Originariamente inviato da albymotard
    Io vorrei allineare da destra i numeri della stampa. Ovviamente potrei riuscire a stampare nella maniera corretta ma la soluzione che ho in mente io (cioè qualche controllo composto da if)è sicuramente sbagliata perchè troppo lunga....in c ci sono quei bei comandi tipo \t o cose simili...in java come posso fare???...esiste una maniera più veloce (simile a quella di c)per stampare allineato??
    Da Java 5 esiste una nuova funzionalità di formattazione delle stringhe, simile (ma ben più potente e affidabile) al printf del "C".

    System.out.format("%4d", 12);

    stampa <SPAZIO><SPAZIO>12

    Altrimenti (e per qualunque versione di Java) ottieni un String del numero (es. "12") e poi calcoli quanti spazi servono (es. 4 - lunghezza_della_stringa) e li stampi o tramite un for o componendo una stringa con gli spazi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    106
    gentilissimo....grazie mille!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Oppure richiamare printf() come in C. ^^

    codice:
    System.out.printf("%4d",(w * e));

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Patrick Jane
    Oppure richiamare printf() come in C. ^^
    I metodi printf e format sono di fatto uguali, e in effetti, tecnicamente, il printf invoca il format.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.