java.text
Class DecimalFormatSymbols

java.lang.Object
  extended byjava.text.DecimalFormatSymbols
All Implemented Interfaces:
Cloneable, Serializable

public final class DecimalFormatSymbols
extends Object
implements Cloneable, Serializable

This class represents the set of symbols (such as the decimal separator, the grouping separator, and so on) needed by DecimalFormat to format numbers. DecimalFormat creates for itself an instance of DecimalFormatSymbols from its locale data. If you need to change any of these symbols, you can get the DecimalFormatSymbols object from your DecimalFormat and modify it.

Author:
Mark Davis, Alan Liu
See Also:
Locale, DecimalFormat, Serialized Form

Field Summary
private static Hashtable cachedLocaleData
          cache to hold the NumberElements and the Currency of a Locale.
private  Currency currency
           
private  String currencySymbol
          String denoting the local currency, e.g. "$".
private static int currentSerialVersion
           
private  char decimalSeparator
          Character used for decimal sign.
private  char digit
          Character used for a digit in a pattern.
private  char exponential
          The character used to distinguish the exponent in a number formatted in exponential notation, e.g.
private  char groupingSeparator
          Character used for thousands separator.
private  String infinity
          String used to represent infinity.
private  String intlCurrencySymbol
          ISO 4217 currency code denoting the local currency, e.g.
private  Locale locale
          The locale of these currency format symbols.
private  char minusSign
          Character used to represent minus sign.
private  char monetarySeparator
          The decimal separator used when formatting currency values.
private  String NaN
          String used to represent "not a number".
private  char patternSeparator
          Character used to separate positive and negative subpatterns in a pattern.
private  char percent
          Character used for percent sign.
private  char perMill
          Character used for mille percent sign.
private  int serialVersionOnStream
          Describes the version of DecimalFormatSymbols present on the stream.
(package private) static long serialVersionUID
           
private  char zeroDigit
          Character used for zero.
 
Constructor Summary
DecimalFormatSymbols()
          Create a DecimalFormatSymbols object for the default locale.
DecimalFormatSymbols(Locale locale)
          Create a DecimalFormatSymbols object for the given locale.
 
Method Summary
 Object clone()
          Standard override.
 boolean equals(Object obj)
          Override equals.
 Currency getCurrency()
          Gets the currency of these DecimalFormatSymbols.
 String getCurrencySymbol()
          Returns the currency symbol for the currency of these DecimalFormatSymbols in their locale.
 char getDecimalSeparator()
          Gets the character used for decimal sign.
 char getDigit()
          Gets the character used for a digit in a pattern.
(package private)  char getExponentialSymbol()
          Returns the character used to separate the mantissa from the exponent.
 char getGroupingSeparator()
          Gets the character used for thousands separator.
 String getInfinity()
          Gets the string used to represent infinity.
 String getInternationalCurrencySymbol()
          Returns the ISO 4217 currency code of the currency of these DecimalFormatSymbols.
 char getMinusSign()
          Gets the character used to represent minus sign.
 char getMonetaryDecimalSeparator()
          Returns the monetary decimal separator.
 String getNaN()
          Gets the string used to represent "not a number".
 char getPatternSeparator()
          Gets the character used to separate positive and negative subpatterns in a pattern.
 char getPercent()
          Gets the character used for percent sign.
 char getPerMill()
          Gets the character used for mille percent sign.
 char getZeroDigit()
          Gets the character used for zero.
 int hashCode()
          Override hashCode.
private  void initialize(Locale locale)
          Initializes the symbols from the LocaleElements resource bundle.
private  void readObject(ObjectInputStream stream)
          Reads the default serializable fields, provides default values for objects in older serial versions, and initializes non-serializable fields.
 void setCurrency(Currency currency)
          Sets the currency of these DecimalFormatSymbols.
 void setCurrencySymbol(String currency)
          Sets the currency symbol for the currency of these DecimalFormatSymbols in their locale.
 void setDecimalSeparator(char decimalSeparator)
          Sets the character used for decimal sign.
 void setDigit(char digit)
          Sets the character used for a digit in a pattern.
(package private)  void setExponentialSymbol(char exp)
          Sets the character used to separate the mantissa from the exponent.
 void setGroupingSeparator(char groupingSeparator)
          Sets the character used for thousands separator.
 void setInfinity(String infinity)
          Sets the string used to represent infinity.
 void setInternationalCurrencySymbol(String currencyCode)
          Sets the ISO 4217 currency code of the currency of these DecimalFormatSymbols.
 void setMinusSign(char minusSign)
          Sets the character used to represent minus sign.
 void setMonetaryDecimalSeparator(char sep)
          Sets the monetary decimal separator.
 void setNaN(String NaN)
          Sets the string used to represent "not a number".
 void setPatternSeparator(char patternSeparator)
          Sets the character used to separate positive and negative subpatterns in a pattern.
 void setPercent(char percent)
          Sets the character used for percent sign.
 void setPerMill(char perMill)
          Sets the character used for mille percent sign.
 void setZeroDigit(char zeroDigit)
          Sets the character used for zero.
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

zeroDigit

private char zeroDigit
Character used for zero.

See Also:
getZeroDigit()

groupingSeparator

private char groupingSeparator
Character used for thousands separator.

See Also:
getGroupingSeparator()

decimalSeparator

private char decimalSeparator
Character used for decimal sign.

See Also:
getDecimalSeparator()

perMill

private char perMill
Character used for mille percent sign.

See Also:
getPerMill()

percent

private char percent
Character used for percent sign.

See Also:
getPercent()

digit

private char digit
Character used for a digit in a pattern.

See Also:
getDigit()

patternSeparator

private char patternSeparator
Character used to separate positive and negative subpatterns in a pattern.

See Also:
getPatternSeparator()

infinity

private String infinity
String used to represent infinity.

See Also:
getInfinity()

NaN

private String NaN
String used to represent "not a number".

See Also:
getNaN()

minusSign

private char minusSign
Character used to represent minus sign.

See Also:
getMinusSign()

currencySymbol

private String currencySymbol
String denoting the local currency, e.g. "$".

See Also:
getCurrencySymbol()

intlCurrencySymbol

private String intlCurrencySymbol
ISO 4217 currency code denoting the local currency, e.g. "USD".

See Also:
getInternationalCurrencySymbol()

monetarySeparator

private char monetarySeparator
The decimal separator used when formatting currency values.

Since:
JDK 1.1.6
See Also:
getMonetaryDecimalSeparator()

exponential

private char exponential
The character used to distinguish the exponent in a number formatted in exponential notation, e.g. 'E' for a number such as "1.23E45".

Note that the public API provides no way to set this field, even though it is supported by the implementation and the stream format. The intent is that this will be added to the API in the future.

Since:
JDK 1.1.6

locale

private Locale locale
The locale of these currency format symbols.

Since:
1.4

currency

private transient Currency currency

serialVersionUID

static final long serialVersionUID
See Also:
Constant Field Values

currentSerialVersion

private static final int currentSerialVersion
See Also:
Constant Field Values

serialVersionOnStream

private int serialVersionOnStream
Describes the version of DecimalFormatSymbols present on the stream. Possible values are: When streaming out a DecimalFormatSymbols, the most recent format (corresponding to the highest allowable serialVersionOnStream) is always written.

Since:
JDK 1.1.6

cachedLocaleData

private static final Hashtable cachedLocaleData
cache to hold the NumberElements and the Currency of a Locale.

Constructor Detail

DecimalFormatSymbols

public DecimalFormatSymbols()
Create a DecimalFormatSymbols object for the default locale.


DecimalFormatSymbols

public DecimalFormatSymbols(Locale locale)
Create a DecimalFormatSymbols object for the given locale.

Throws:
NullPointerException - if locale is null
Method Detail

getZeroDigit

public char getZeroDigit()
Gets the character used for zero. Different for Arabic, etc.


setZeroDigit

public void setZeroDigit(char zeroDigit)
Sets the character used for zero. Different for Arabic, etc.


getGroupingSeparator

public char getGroupingSeparator()
Gets the character used for thousands separator. Different for French, etc.


setGroupingSeparator

public void setGroupingSeparator(char groupingSeparator)
Sets the character used for thousands separator. Different for French, etc.


getDecimalSeparator

public char getDecimalSeparator()
Gets the character used for decimal sign. Different for French, etc.


setDecimalSeparator

public void setDecimalSeparator(char decimalSeparator)
Sets the character used for decimal sign. Different for French, etc.


getPerMill

public char getPerMill()
Gets the character used for mille percent sign. Different for Arabic, etc.


setPerMill

public void setPerMill(char perMill)
Sets the character used for mille percent sign. Different for Arabic, etc.


getPercent

public char getPercent()
Gets the character used for percent sign. Different for Arabic, etc.


setPercent

public void setPercent(char percent)
Sets the character used for percent sign. Different for Arabic, etc.


getDigit

public char getDigit()
Gets the character used for a digit in a pattern.


setDigit

public void setDigit(char digit)
Sets the character used for a digit in a pattern.


getPatternSeparator

public char getPatternSeparator()
Gets the character used to separate positive and negative subpatterns in a pattern.


setPatternSeparator

public void setPatternSeparator(char patternSeparator)
Sets the character used to separate positive and negative subpatterns in a pattern.


getInfinity

public String getInfinity()
Gets the string used to represent infinity. Almost always left unchanged.


setInfinity

public void setInfinity(String infinity)
Sets the string used to represent infinity. Almost always left unchanged.


getNaN

public String getNaN()
Gets the string used to represent "not a number". Almost always left unchanged.


setNaN

public void setNaN(String NaN)
Sets the string used to represent "not a number". Almost always left unchanged.


getMinusSign

public char getMinusSign()
Gets the character used to represent minus sign. If no explicit negative format is specified, one is formed by prefixing minusSign to the positive format.


setMinusSign

public void setMinusSign(char minusSign)
Sets the character used to represent minus sign. If no explicit negative format is specified, one is formed by prefixing minusSign to the positive format.


getCurrencySymbol

public String getCurrencySymbol()
Returns the currency symbol for the currency of these DecimalFormatSymbols in their locale.

Since:
1.2

setCurrencySymbol

public void setCurrencySymbol(String currency)
Sets the currency symbol for the currency of these DecimalFormatSymbols in their locale.

Since:
1.2

getInternationalCurrencySymbol

public String getInternationalCurrencySymbol()
Returns the ISO 4217 currency code of the currency of these DecimalFormatSymbols.

Since:
1.2

setInternationalCurrencySymbol

public void setInternationalCurrencySymbol(String currencyCode)
Sets the ISO 4217 currency code of the currency of these DecimalFormatSymbols. If the currency code is valid (as defined by Currency.getInstance), this also sets the currency attribute to the corresponding Currency instance and the currency symbol attribute to the currency's symbol in the DecimalFormatSymbols' locale. If the currency code is not valid, then the currency attribute is set to null and the currency symbol attribute is not modified.

Since:
1.2
See Also:
setCurrency(java.util.Currency), setCurrencySymbol(java.lang.String)

getCurrency

public Currency getCurrency()
Gets the currency of these DecimalFormatSymbols. May be null if the currency symbol attribute was previously set to a value that's not a valid ISO 4217 currency code.

Returns:
the currency used, or null
Since:
1.4

setCurrency

public void setCurrency(Currency currency)
Sets the currency of these DecimalFormatSymbols. This also sets the currency symbol attribute to the currency's symbol in the DecimalFormatSymbols' locale, and the international currency symbol attribute to the currency's ISO 4217 currency code.

Parameters:
currency - the new currency to be used
Throws:
NullPointerException - if currency is null
Since:
1.4
See Also:
setCurrencySymbol(java.lang.String), setInternationalCurrencySymbol(java.lang.String)

getMonetaryDecimalSeparator

public char getMonetaryDecimalSeparator()
Returns the monetary decimal separator.

Since:
1.2

setMonetaryDecimalSeparator

public void setMonetaryDecimalSeparator(char sep)
Sets the monetary decimal separator.

Since:
1.2

getExponentialSymbol

char getExponentialSymbol()
Returns the character used to separate the mantissa from the exponent.


setExponentialSymbol

void setExponentialSymbol(char exp)
Sets the character used to separate the mantissa from the exponent.


clone

public Object clone()
Standard override.

Overrides:
clone in class Object
Returns:
a clone of this instance.
See Also:
Cloneable

equals

public boolean equals(Object obj)
Override equals.

Overrides:
equals in class Object
Parameters:
obj - the reference object with which to compare.
Returns:
true if this object is the same as the obj argument; false otherwise.
See Also:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
Override hashCode.

Overrides:
hashCode in class Object
Returns:
a hash code value for this object.
See Also:
Object.equals(java.lang.Object), Hashtable

initialize

private void initialize(Locale locale)
Initializes the symbols from the LocaleElements resource bundle.


readObject

private void readObject(ObjectInputStream stream)
                 throws IOException,
                        ClassNotFoundException
Reads the default serializable fields, provides default values for objects in older serial versions, and initializes non-serializable fields. If serialVersionOnStream is less than 1, initializes monetarySeparator to be the same as decimalSeparator and exponential to be 'E'. If serialVersionOnStream is less then 2, initializes localeto the root locale. Sets serialVersionOnStream back to the maximum allowed value so that default serialization will work properly if this object is streamed out again. Initializes the currency from the intlCurrencySymbol field.

Throws:
IOException
ClassNotFoundException
Since:
JDK 1.1.6