1   /**
2    * Ohjelma tulostaa tietoja kuutiosta "siistissä" muodossa
3    * @author Vesa Lappalainen
4    * @version 1.0, 05.01.2003
5    */
6   class Kuutio4 {
7     static final String TAHOKAS    = "Kuutiossa";
8     static final int    KARKIA     =  8;
9     static final int    SIVUTASOJA =  6;
10    static final int    SARMIA     = 12;
11  
12    /**
13     * Palauttaa jonon s muotoiltuna vähintään len-pituiseksi
14     * <pre>
15     * Esim:  fmt("2",3)  => "  2"
16     *        fmt("2",-3) => "2  "
17     * </pre>
18     * @param s     muotoiltava jono
19     * @param len   pituus, negatiivisella vasempaan laitaan, pos. oikeaan
20     * @return      muotoiltu jono
21     */
22    static String fmt(String s,int len) {
23      int needs = Math.abs(len) - s.length();
24      if ( needs <= 0 ) return s;
25      StringBuffer fill = new StringBuffer("                                   ");
26      while ( fill.length() < needs ) fill.append("                            ");
27      fill.delete(needs,1000);
28      if ( len < 0 ) return s + fill;
29      return fill + s;
30    }
31  
32    /**
33     * Tulostaa 2 merkkijonoa ja yhden kokonaisluvun siististi
34     * @param s1 Ensimmäinen tulostettava jono
35     * @param i  tulostettava kokonaisluku
36     * @param s2 toinen tulostettava jono
37     */
38    static void tulosta(String s1, int i, String s2) {
39      System.out.println(fmt(s1,20) + " " + fmt(String.valueOf(i),2) + " " + s2);
40    }
41  
42    public static void main(String[] args) {
43      tulosta(TAHOKAS + " on", KARKIA    , "kärkeä,");
44      tulosta(""             , SIVUTASOJA, "sivutasoa ja");
45      tulosta(""             , SARMIA    , "särmää.");
46    }
47  }
48