/**
 * Ohjelma tulostaa tietoja kuutiosta "siistissä" muodossa
 * @author Vesa Lappalainen
 * @version 1.0, 05.01.2003
 */
class Kuutio4 {
  static final String TAHOKAS    = "Kuutiossa";
  static final int    KARKIA     =  8;
  static final int    SIVUTASOJA =  6;
  static final int    SARMIA     = 12;

  /**
   * Palauttaa jonon s muotoiltuna vähintään len-pituiseksi
   * <pre>
   * Esim:  fmt("2",3)  => "  2"
   *        fmt("2",-3) => "2  "
   * </pre>
   * @param s     muotoiltava jono
   * @param len   pituus, negatiivisella vasempaan laitaan, pos. oikeaan
   * @return      muotoiltu jono
   */
  static String fmt(String s,int len) {
    int needs = Math.abs(len) - s.length();
    if ( needs <= 0 ) return s;
    StringBuffer fill = new StringBuffer("                                   ");
    while ( fill.length() < needs ) fill.append("                            ");
    fill.delete(needs,1000);
    if ( len < 0 ) return s + fill;
    return fill + s;
  }

  /**
   * Tulostaa 2 merkkijonoa ja yhden kokonaisluvun siististi
   * @param s1 Ensimmäinen tulostettava jono
   * @param i  tulostettava kokonaisluku
   * @param s2 toinen tulostettava jono
   */
  static void tulosta(String s1, int i, String s2) {
    System.out.println(fmt(s1,20) + " " + fmt(String.valueOf(i),2) + " " + s2);
  }

  public static void main(String[] args) {
    tulosta(TAHOKAS + " on", KARKIA    , "kärkeä,");
    tulosta(""             , SIVUTASOJA, "sivutasoa ja");
    tulosta(""             , SARMIA    , "särmää.");
  }
}