// File: TestNumber4.java (Module 8) // // Author: Rahul Simha // Created: October 6, 1998 // // Formatting with blank-padding. // File: new_io.java // // Screen input/output redefined. // import java.text.*; class EasyFormat { // Pad blanks as required (for both int's and double's). static String pad_blanks (String s, int target_len, boolean is_int) { int slen = s.length(); // No decimal point to worry about with int's. if (is_int) { if (slen >= target_len) return s; // Otherwise we pad from front for (int i=1; i <= target_len-slen; i++) s = ' ' + s; return s; } // Otherwise check up to decimal point int i = s.indexOf ('.'); if ((i < 0) || (i >= slen)) { System.out.println ("ERR: pad_blanks: no decimal point"); System.exit(1); } if (i+1 >= target_len) return s; // Otherwise, pad with blanks for (int j=1; j < =target_len-(i+1); j++) s = ' ' + s; return s; } // Format integers. public static String format (long i, int width) { DecimalFormat df_i = new DecimalFormat ("#"); String s_i = df_i.format (i); s_i = pad_blanks (s_i, width, true); return s_i; } // Format double's. public static String format (double d, int before_dec_pt, int after_dec_pt) { // Use '#' symbols before decimal point. String s = ""; for (int i=1; i