Package corejava
Class Format
- java.lang.Object
-
- corejava.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- Version:
- 1.22 2002-11-16
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
alternate
private char
fmt
private boolean
leadingZeroes
private boolean
leftAlign
private java.lang.String
post
private java.lang.String
pre
private int
precision
private boolean
showPlus
private boolean
showSpace
private int
width
-
Constructor Summary
Constructors Constructor Description Format(java.lang.String s)
Formats the number following printf conventions.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static double
atof(java.lang.String s)
Converts a string of digits to a doublestatic int
atoi(java.lang.String s)
Converts a string of digits (decimal, octal or hex) to an integerstatic long
atol(java.lang.String s)
Converts a string of digits (decimal, octal or hex) to a long integerprivate static java.lang.String
convert(long x, int n, int m, java.lang.String d)
private java.lang.String
expFormat(double d)
private java.lang.String
fixedFormat(double d)
java.lang.String
format(char c)
Formats a character into a string (like sprintf in C)java.lang.String
format(double x)
Formats a double into a string (like sprintf in C)java.lang.String
format(int x)
Formats an integer into a string (like sprintf in C)java.lang.String
format(long x)
Formats a long integer into a string (like sprintf in C)java.lang.String
format(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 classprivate java.lang.String
pad(java.lang.String r)
private static long
parseLong(java.lang.String s, int base)
static void
printf(java.lang.String fmt, char x)
prints a formatted number following printf conventionsstatic void
printf(java.lang.String fmt, double x)
prints a formatted number following printf conventionsstatic void
printf(java.lang.String fmt, int x)
prints a formatted number following printf conventionsstatic void
printf(java.lang.String fmt, long x)
prints a formatted number following printf conventionsstatic void
printf(java.lang.String fmt, java.lang.String x)
prints a formatted number following printf conventionsprivate static java.lang.String
repeat(char c, int n)
private java.lang.String
sign(int s, java.lang.String r)
-
-
-
Field Detail
-
width
private int width
-
precision
private int precision
-
pre
private java.lang.String pre
-
post
private java.lang.String post
-
leadingZeroes
private boolean leadingZeroes
-
showPlus
private boolean showPlus
-
alternate
private boolean alternate
-
showSpace
private boolean showSpace
-
leftAlign
private boolean leftAlign
-
fmt
private char fmt
-
-
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
-
printf
public static void printf(java.lang.String fmt, double x)
prints a formatted number following printf conventions- Parameters:
fmt
- the format stringx
- the double to print
-
printf
public static void printf(java.lang.String fmt, int x)
prints a formatted number following printf conventions- Parameters:
fmt
- the format stringx
- the int to print
-
printf
public static void printf(java.lang.String fmt, long x)
prints a formatted number following printf conventions- Parameters:
fmt
- the format stringx
- the long to print
-
printf
public static void printf(java.lang.String fmt, char x)
prints a formatted number following printf conventions- Parameters:
fmt
- the format stringx
- the character to print
-
printf
public static void printf(java.lang.String fmt, java.lang.String x)
prints a formatted number following printf conventions- Parameters:
fmt
- the format stringx
- a string 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
-
parseLong
private static long parseLong(java.lang.String s, int base)
-
atof
public static double atof(java.lang.String s)
Converts a string of digits to a double- Parameters:
s
- a string
-
format
public java.lang.String format(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
-
format
public java.lang.String format(int x)
Formats an integer into a string (like sprintf in C)- Parameters:
x
- the number to format- Returns:
- the formatted string
-
format
public java.lang.String format(long x)
Formats a long integer into a string (like sprintf in C)- Parameters:
x
- the number to format- Returns:
- the formatted string
-
format
public java.lang.String format(char c)
Formats a character into a string (like sprintf in C)- Parameters:
x
- the value to format- Returns:
- the formatted string
-
format
public java.lang.String format(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
-
repeat
private static java.lang.String repeat(char c, int n)
-
convert
private static java.lang.String convert(long x, int n, int m, java.lang.String d)
-
pad
private java.lang.String pad(java.lang.String r)
-
sign
private java.lang.String sign(int s, java.lang.String r)
-
fixedFormat
private java.lang.String fixedFormat(double d)
-
expFormat
private java.lang.String expFormat(double d)
-
-