org.apache.commons.math.complex

## Class ComplexFormat

- java.lang.Object
- - java.text.Format
  - - org.apache.commons.math.util.CompositeFormat
    - - org.apache.commons.math.complex.ComplexFormat

All Implemented Interfaces:
  Serializable, Cloneable

    public class ComplexFormat
    extends CompositeFormat

Formats a Complex number in cartesian format "Re(c) + Im(c)i". 'i' can be replaced with 'j' (or anything else), and the number format for both real and imaginary parts can be configured.

Version:
  $Revision: 983921 $ $Date: 2010-08-10 12:46:06 +0200 (mar. 10 août 2010) $
See Also:
  Serialized Form

### Nested Class Summary

### Nested classes/interfaces inherited from class java.text.Format

`Format.Field`

### Field Summary

Fields
`private static String` `DEFAULT_IMAGINARY_CHARACTER` The default imaginary character.
`private String` `imaginaryCharacter` The notation used to signify the imaginary part of the complex number.
`private NumberFormat` `imaginaryFormat` The format used for the imaginary part.
`private NumberFormat` `realFormat` The format used for the real part.
`private static long` `serialVersionUID` Serializable version identifier

### Constructor Summary

Constructors
Constructor and Description
`ComplexFormat()` Create an instance with the default imaginary character, 'i', and the default number format for both real and imaginary parts.
`ComplexFormat(NumberFormat format)` Create an instance with a custom number format for both real and imaginary parts.
`ComplexFormat(NumberFormat realFormat, NumberFormat imaginaryFormat)` Create an instance with a custom number format for the real part and a custom number format for the imaginary part.
`ComplexFormat(String imaginaryCharacter)` Create an instance with a custom imaginary character, and the default number format for both real and imaginary parts.
`ComplexFormat(String imaginaryCharacter, NumberFormat format)` Create an instance with a custom imaginary character, and a custom number format for both real and imaginary parts.
`ComplexFormat(String imaginaryCharacter, NumberFormat realFormat, NumberFormat imaginaryFormat)` Create an instance with a custom imaginary character, a custom number format for the real part, and a custom number format for the imaginary part.

### Method Summary

Methods
`StringBuffer` `format(Complex complex, StringBuffer toAppendTo, FieldPosition pos)` Formats a `Complex` object to produce a string.
`StringBuffer` `format(Object obj, StringBuffer toAppendTo, FieldPosition pos)` Formats a object to produce a string.
`static String` `formatComplex(Complex c)` This static method calls `Format.format(Object)` on a default instance of ComplexFormat.
`static Locale[]` `getAvailableLocales()` Get the set of locales for which complex formats are available.
`String` `getImaginaryCharacter()` Access the imaginaryCharacter.
`NumberFormat` `getImaginaryFormat()` Access the imaginaryFormat.
`static ComplexFormat` `getInstance()` Returns the default complex format for the current locale.
`static ComplexFormat` `getInstance(Locale locale)` Returns the default complex format for the given locale.
`NumberFormat` `getRealFormat()` Access the realFormat.
`Complex` `parse(String source)` Parses a string to produce a `Complex` object.
`Complex` `parse(String source, ParsePosition pos)` Parses a string to produce a `Complex` object.
`Object` `parseObject(String source, ParsePosition pos)` Parses a string to produce a object.
`void` `setImaginaryCharacter(String imaginaryCharacter)` Modify the imaginaryCharacter.
`void` `setImaginaryFormat(NumberFormat imaginaryFormat)` Modify the imaginaryFormat.
`void` `setRealFormat(NumberFormat realFormat)` Modify the realFormat.

### Methods inherited from class org.apache.commons.math.util.CompositeFormat

`formatDouble, getDefaultNumberFormat, getDefaultNumberFormat, parseAndIgnoreWhitespace, parseFixedstring, parseNextCharacter, parseNumber`

### Methods inherited from class java.text.Format

`clone, format, formatToCharacterIterator, parseObject`

### Methods inherited from class java.lang.Object

`equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### serialVersionUID

    private static final long serialVersionUID

Serializable version identifier

See Also:
  Constant Field Values

#### DEFAULT_IMAGINARY_CHARACTER

    private static final String DEFAULT_IMAGINARY_CHARACTER

The default imaginary character.

See Also:
  Constant Field Values

#### imaginaryCharacter

    private String imaginaryCharacter

The notation used to signify the imaginary part of the complex number.

#### imaginaryFormat

    private NumberFormat imaginaryFormat

The format used for the imaginary part.

#### realFormat

    private NumberFormat realFormat

The format used for the real part.

### Constructor Detail

#### ComplexFormat

    public ComplexFormat()

Create an instance with the default imaginary character, 'i', and the default number format for both real and imaginary parts.

#### ComplexFormat

    public ComplexFormat(NumberFormat format)

Create an instance with a custom number format for both real and imaginary parts.

Parameters:
  `format` - the custom format for both real and imaginary parts.

#### ComplexFormat

    public ComplexFormat(NumberFormat realFormat,
                 NumberFormat imaginaryFormat)

Create an instance with a custom number format for the real part and a custom number format for the imaginary part.

Parameters:
  `realFormat` - the custom format for the real part.
  `imaginaryFormat` - the custom format for the imaginary part.

#### ComplexFormat

    public ComplexFormat(String imaginaryCharacter)

Create an instance with a custom imaginary character, and the default number format for both real and imaginary parts.

Parameters:
  `imaginaryCharacter` - The custom imaginary character.

#### ComplexFormat

    public ComplexFormat(String imaginaryCharacter,
                 NumberFormat format)

Create an instance with a custom imaginary character, and a custom number format for both real and imaginary parts.

Parameters:
  `imaginaryCharacter` - The custom imaginary character.
  `format` - the custom format for both real and imaginary parts.

#### ComplexFormat

    public ComplexFormat(String imaginaryCharacter,
                 NumberFormat realFormat,
                 NumberFormat imaginaryFormat)

Create an instance with a custom imaginary character, a custom number format for the real part, and a custom number format for the imaginary part.

Parameters:
  `imaginaryCharacter` - The custom imaginary character.
  `realFormat` - the custom format for the real part.
  `imaginaryFormat` - the custom format for the imaginary part.

### Method Detail

#### getAvailableLocales

    public static Locale[] getAvailableLocales()

Get the set of locales for which complex formats are available.

This is the same set as the `NumberFormat` set.

Returns:
  available complex format locales.

#### formatComplex

    public static String formatComplex(Complex c)

This static method calls `Format.format(Object)` on a default instance of ComplexFormat.

Parameters:
  `c` - Complex object to format
Returns:
  A formatted number in the form "Re(c) + Im(c)i"

#### format

    public StringBuffer format(Complex complex,
                      StringBuffer toAppendTo,
                      FieldPosition pos)

Formats a `Complex` object to produce a string.

Parameters:
  `complex` - the object to format.
  `toAppendTo` - where the text is to be appended
  `pos` - On input: an alignment field, if desired. On output: the offsets of the alignment field
Returns:
  the value passed in as toAppendTo.

#### format

    public StringBuffer format(Object obj,
                      StringBuffer toAppendTo,
                      FieldPosition pos)

Formats a object to produce a string. `obj` must be either a `Complex` object or a `Number` object. Any other type of object will result in an `IllegalArgumentException` being thrown.

Specified by:
  `format` in class `Format`
Parameters:
  `obj` - the object to format.
  `toAppendTo` - where the text is to be appended
  `pos` - On input: an alignment field, if desired. On output: the offsets of the alignment field
Returns:
  the value passed in as toAppendTo.
Throws:
  `IllegalArgumentException` - is `obj` is not a valid type.
See Also:
  `Format.format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition)`

#### getImaginaryCharacter

    public String getImaginaryCharacter()

Access the imaginaryCharacter.

Returns:
  the imaginaryCharacter.

#### getImaginaryFormat

    public NumberFormat getImaginaryFormat()

Access the imaginaryFormat.

Returns:
  the imaginaryFormat.

#### getInstance

    public static ComplexFormat getInstance()

Returns the default complex format for the current locale.

Returns:
  the default complex format.

#### getInstance

    public static ComplexFormat getInstance(Locale locale)

Returns the default complex format for the given locale.

Parameters:
  `locale` - the specific locale used by the format.
Returns:
  the complex format specific to the given locale.

#### getRealFormat

    public NumberFormat getRealFormat()

Access the realFormat.

Returns:
  the realFormat.

#### parse

    public Complex parse(String source)
                  throws ParseException

Parses a string to produce a `Complex` object.

Parameters:
  `source` - the string to parse
Returns:
  the parsed `Complex` object.
Throws:
  `ParseException` - if the beginning of the specified string cannot be parsed.

#### parse

    public Complex parse(String source,
                ParsePosition pos)

Parses a string to produce a `Complex` object.

Parameters:
  `source` - the string to parse
  `pos` - input/ouput parsing parameter.
Returns:
  the parsed `Complex` object.

#### parseObject

    public Object parseObject(String source,
                     ParsePosition pos)

Parses a string to produce a object.

Specified by:
  `parseObject` in class `Format`
Parameters:
  `source` - the string to parse
  `pos` - input/ouput parsing parameter.
Returns:
  the parsed object.
See Also:
  `Format.parseObject(java.lang.String, java.text.ParsePosition)`

#### setImaginaryCharacter

    public void setImaginaryCharacter(String imaginaryCharacter)

Modify the imaginaryCharacter.

Parameters:
  `imaginaryCharacter` - The new imaginaryCharacter value.
Throws:
  `IllegalArgumentException` - if `imaginaryCharacter` is `null` or an empty string.

#### setImaginaryFormat

    public void setImaginaryFormat(NumberFormat imaginaryFormat)

Modify the imaginaryFormat.

Parameters:
  `imaginaryFormat` - The new imaginaryFormat value.
Throws:
  `NullArgumentException` - if `imaginaryFormat` is `null`.

#### setRealFormat

    public void setRealFormat(NumberFormat realFormat)

Modify the realFormat.

Parameters:
  `realFormat` - The new realFormat value.
Throws:
  `NullArgumentException` - if `realFormat` is `null`.