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() {
}
}
Related examples in the same category