The Java TM Tutorial

| Start of Tutorial > Start of Trail > Start of Lesson | Search

Trail: Internationalization
Lesson: Formatting

## Number Format Pattern Syntax

> You can design your own format patterns for numbers by following the rules specified by the following BNF diagram:

> >     pattern    := subpattern{;subpattern}
> >     subpattern := {prefix}integer{.fraction}{suffix}
> >     prefix     := '\\u0000'..'\\uFFFD' - specialCharacters
> >     suffix     := '\\u0000'..'\\uFFFD' - specialCharacters
> >     integer    := '#'* '0'* '0'
> >     fraction   := '0'* '#'*

> The notation used in the preceding diagram is explained in the following table:

> > Notation | Description
> >     X*
> > | 0 or more instances of X
> >     (X | Y)
> > | either X or Y
> >     X..Y
> > | any character from X up to Y, inclusive
> >     S - T
> > | characters in S, except those in T
> >     {X}
> > | X is optional

> In the preceding BNF diagram, the first subpattern specifies the format for positive numbers. The second subpattern, which is optional, specifies the format for negative numbers.

> Although not noted in the BNF diagram, a comma may appear within the integer portion.

> Within the subpatterns, you specify formatting with special symbols. These symbols are described in the following table:

> > Symbol | Description
> > 0 | a digit
> > # | a digit, zero shows as absent
> > . | placeholder for decimal separator
> > , | placeholder for grouping separator
> > E | separates mantissa and exponent for exponential formats
> > ; | separates formats
> > - | default negative prefix
> > % | multiply by 100 and show as percentage
> > ? | multiply by 1000 and show as per mille
> > ¤ | currency sign; replaced by currency symbol; if doubled, replaced by international currency symbol; if present in a pattern, the monetary decimal separator is used instead of the decimal separator
> > X | any other characters can be used in the prefix or suffix
> > ' | used to quote special characters in a prefix or suffix