sdsu.io
Class Format

java.lang.Object
  |
  +--sdsu.io.Format

public class Format
extends java.lang.Object

A class for formatting numbers that follows printf conventions. Also implements C-like atoi and atof functions. This class appears in Core Java by Gary Cornell and Cay S. Horstmann. The following appears in the source code for this class:
Permission to use, copy, modify, and distribute this software and its documentation for NON-COMMERCIAL purposes and without fee is hereby granted provided that this copyright notice appears in all copies.
THE AUTHORS AND PUBLISHER MAKE NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. THE AUTHORS AND PUBLISHER SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.

Version:
1.01 15 Feb 1996
Author:
Cay Horstmann

Constructor Summary
Format(java.lang.String s)
          Formats the number following printf conventions.
 
Method Summary
static double atof(java.lang.String s)
          Converts a string of digits to an double
static int atoi(java.lang.String s)
          Converts a string of digits (decimal, octal or hex) to an integer
static long atol(java.lang.String s)
          Converts a string of digits (decimal, octal or hex) to a long integer
 java.lang.String form(char c)
          Formats a character into a string (like sprintf in C)
 java.lang.String form(double x)
          Formats a double into a string (like sprintf in C)
 java.lang.String form(long x)
          Formats a long integer into a string (like sprintf in C)
 java.lang.String form(java.lang.String s)
          Formats a string into a larger string (like sprintf in C)
static void main(java.lang.String[] a)
          a test stub for the format class
static void print(java.io.PrintStream s, java.lang.String fmt, char x)
          prints a formatted number following printf conventions
static void print(java.io.PrintStream s, java.lang.String fmt, double x)
          prints a formatted number following printf conventions
static void print(java.io.PrintStream s, java.lang.String fmt, long x)
          prints a formatted number following printf conventions
static void print(java.io.PrintStream s, java.lang.String fmt, java.lang.String x)
          prints a formatted number following printf conventions
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Format

public Format(java.lang.String s)
Formats the number following printf conventions. Main limitation: Can only handle one format parameter at a time Use multiple Format objects to format more than one number
Parameters:
s - the format string following printf conventions The string has a prefix, a format code and a suffix. The prefix and suffix become part of the formatted output. The format code directs the formatting of the (single) parameter to be formatted. The code has the following structure
  • a % (required)
  • a modifier (optional)
    +
    forces display of + for positive numbers
    0
    show leading zeroes
    -
    align left in the field
    space
    prepend a space in front of positive numbers
    #
    use "alternate" format. Add 0 or 0x for octal or hexadecimal numbers. Don't suppress trailing zeroes in general floating point format.
  • an integer denoting field width (optional)
  • a period followed by an integer denoting precision (optional)
  • a format descriptor (required)
    f
    floating point number in fixed format
    e, E
    floating point number in exponential notation (scientific format). The E format results in an uppercase E for the exponent (1.14130E+003), the e format in a lowercase e.
    g, G
    floating point number in general format (fixed format for small numbers, exponential format for large numbers). Trailing zeroes are suppressed. The G format results in an uppercase E for the exponent (if any), the g format in a lowercase e.
    d, i
    integer in decimal
    x
    integer in hexadecimal
    o
    integer in octal
    s
    string
    c
    character
Throws:
java.lang.IllegalArgumentException - if bad format
Method Detail

print

public static void print(java.io.PrintStream s,
                         java.lang.String fmt,
                         double x)
prints a formatted number following printf conventions
Parameters:
s - a PrintStream
fmt - the format string
x - the double to print

print

public static void print(java.io.PrintStream s,
                         java.lang.String fmt,
                         long x)
prints a formatted number following printf conventions
Parameters:
s - a PrintStream
fmt - the format string
x - the long to print

print

public static void print(java.io.PrintStream s,
                         java.lang.String fmt,
                         char x)
prints a formatted number following printf conventions
Parameters:
s - a PrintStream
fmt - the format string
x - the character to

print

public static void print(java.io.PrintStream s,
                         java.lang.String fmt,
                         java.lang.String x)
prints a formatted number following printf conventions
Parameters:
s - a PrintStream, fmt the format string
x - a string that represents the digits to print

atoi

public static int atoi(java.lang.String s)
Converts a string of digits (decimal, octal or hex) to an integer
Parameters:
s - a string
Returns:
the numeric value of the prefix of s representing a base 10 integer

atol

public static long atol(java.lang.String s)
Converts a string of digits (decimal, octal or hex) to a long integer
Parameters:
s - a string
Returns:
the numeric value of the prefix of s representing a base 10 integer

atof

public static double atof(java.lang.String s)
Converts a string of digits to an double
Parameters:
s - a string

form

public java.lang.String form(double x)
Formats a double into a string (like sprintf in C)
Parameters:
x - the number to format
Returns:
the formatted string
Throws:
java.lang.IllegalArgumentException - if bad argument

form

public java.lang.String form(long x)
Formats a long integer into a string (like sprintf in C)
Parameters:
x - the number to format
Returns:
the formatted string

form

public java.lang.String form(char c)
Formats a character into a string (like sprintf in C)
Parameters:
x - the value to format
Returns:
the formatted string

form

public java.lang.String form(java.lang.String s)
Formats a string into a larger string (like sprintf in C)
Parameters:
x - the value to format
Returns:
the formatted string

main

public static void main(java.lang.String[] a)
a test stub for the format class