Mega Code Archive

 
Categories / Java / Collections Data Structure
 

Print a table of Fahrenheit and Celsius temperatures 3

import java.text.*; /* Print a table of Fahrenheit and Celsius temperatures, with decimal  * points lined up.  * @author Ian F. Darwin, http://www.darwinsys.com/  * @version $Id: TempConverter3.java,v 1.4 2004/03/07 02:50:49 ian Exp $  */ public class TempConverter3 extends TempConverter2 {   protected FieldPosition fp;   protected DecimalFormat dff;   public static void main(String[] args) {     TempConverter t = new TempConverter3();     t.start();     t.data();     t.end();   }   // Constructor   public TempConverter3() {     super();     dff = new DecimalFormat("#0.0");     fp = new FieldPosition(NumberFormat.INTEGER_FIELD);   }   protected void print(float f, float c) {     String fs = dff.format(f, new StringBuffer(), fp).toString();     fs = prependSpaces(4 - fp.getEndIndex(), fs);     String cs = df.format(c, new StringBuffer(), fp).toString();     cs = prependSpaces(4 - fp.getEndIndex(), cs);     System.out.println(fs + "  " + cs);   }   protected String prependSpaces(int n, String s) {     String[] res = {       "", " ", "  ", "   ", "    ", "     "     };     if (n<res.length)       return res[n] + s;     throw new IllegalStateException("Rebuild with bigger \"res\" array.");   } } class TempConverter2 extends TempConverter {   protected DecimalFormat df;   public static void main(String[] args) {     TempConverter t = new TempConverter2();     t.start();     t.data();     t.end();   }   // Constructor   public TempConverter2() {     df = new DecimalFormat("#0.00");   }   protected void print(float f, float c) {     System.out.println(df.format(f) + " " + df.format(c));   }   protected void start() {     System.out.println("Fahr    Centigrade.");   }   protected void end() {     System.out.println("-------------------");   } } class TempConverter {   public static void main(String[] args) {     TempConverter t = new TempConverter();     t.start();     t.data();     t.end();   }   protected void start() {   }   protected void data() {     for (int i=-40; i<=120; i+=10) {       float c = (i-32)*(5f/9);       print(i, c);     }   }   protected void print(float f, float c) {     System.out.println(f + " " + c);   }   protected void end() {   } }