org.apache.commons.math3.complex

## Class ComplexFormat

- java.lang.Object
- - org.apache.commons.math3.complex.ComplexFormat

    public class ComplexFormat
    extends java.lang.Object

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:
  $Id: ComplexFormat.java 1416643 2012-12-03 19:37:14Z tn $

### Field Summary

Fields
`private static java.lang.String` `DEFAULT_IMAGINARY_CHARACTER` The default imaginary character.
`private java.lang.String` `imaginaryCharacter` The notation used to signify the imaginary part of the complex number.
`private java.text.NumberFormat` `imaginaryFormat` The format used for the imaginary part.
`private java.text.NumberFormat` `realFormat` The format used for the real part.

### 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(java.text.NumberFormat format)` Create an instance with a custom number format for both real and imaginary parts.
`ComplexFormat(java.text.NumberFormat realFormat, java.text.NumberFormat imaginaryFormat)` Create an instance with a custom number format for the real part and a custom number format for the imaginary part.
`ComplexFormat(java.lang.String imaginaryCharacter)` Create an instance with a custom imaginary character, and the default number format for both real and imaginary parts.
`ComplexFormat(java.lang.String imaginaryCharacter, java.text.NumberFormat format)` Create an instance with a custom imaginary character, and a custom number format for both real and imaginary parts.
`ComplexFormat(java.lang.String imaginaryCharacter, java.text.NumberFormat realFormat, java.text.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
`java.lang.String` `format(Complex c)` This method calls `format(Object,StringBuffer,FieldPosition)`.
`java.lang.StringBuffer` `format(Complex complex, java.lang.StringBuffer toAppendTo, java.text.FieldPosition pos)` Formats a `Complex` object to produce a string.
`java.lang.String` `format(java.lang.Double c)` This method calls `format(Object,StringBuffer,FieldPosition)`.
`java.lang.StringBuffer` `format(java.lang.Object obj, java.lang.StringBuffer toAppendTo, java.text.FieldPosition pos)` Formats a object to produce a string.
`private java.lang.StringBuffer` `formatImaginary(double absIm, java.lang.StringBuffer toAppendTo, java.text.FieldPosition pos)` Format the absolute value of the imaginary part.
`static java.util.Locale[]` `getAvailableLocales()` Get the set of locales for which complex formats are available.
`java.lang.String` `getImaginaryCharacter()` Access the imaginaryCharacter.
`java.text.NumberFormat` `getImaginaryFormat()` Access the imaginaryFormat.
`static ComplexFormat` `getInstance()` Returns the default complex format for the current locale.
`static ComplexFormat` `getInstance(java.util.Locale locale)` Returns the default complex format for the given locale.
`static ComplexFormat` `getInstance(java.lang.String imaginaryCharacter, java.util.Locale locale)` Returns the default complex format for the given locale.
`java.text.NumberFormat` `getRealFormat()` Access the realFormat.
`Complex` `parse(java.lang.String source)` Parses a string to produce a `Complex` object.
`Complex` `parse(java.lang.String source, java.text.ParsePosition pos)` Parses a string to produce a `Complex` object.

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

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

### Field Detail

#### DEFAULT_IMAGINARY_CHARACTER

    private static final java.lang.String DEFAULT_IMAGINARY_CHARACTER

The default imaginary character.

See Also:
  Constant Field Values

#### imaginaryCharacter

    private final java.lang.String imaginaryCharacter

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

#### imaginaryFormat

    private final java.text.NumberFormat imaginaryFormat

The format used for the imaginary part.

#### realFormat

    private final java.text.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(java.text.NumberFormat format)
                  throws NullArgumentException

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.
Throws:
  `NullArgumentException` - if `realFormat` is `null`.

#### ComplexFormat

    public ComplexFormat(java.text.NumberFormat realFormat,
                 java.text.NumberFormat imaginaryFormat)
                  throws NullArgumentException

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.
Throws:
  `NullArgumentException` - if `imaginaryFormat` is `null`.
  `NullArgumentException` - if `realFormat` is `null`.

#### ComplexFormat

    public ComplexFormat(java.lang.String imaginaryCharacter)
                  throws NullArgumentException,
                         NoDataException

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.
Throws:
  `NullArgumentException` - if `imaginaryCharacter` is `null`.
  `NoDataException` - if `imaginaryCharacter` is an empty string.

#### ComplexFormat

    public ComplexFormat(java.lang.String imaginaryCharacter,
                 java.text.NumberFormat format)
                  throws NullArgumentException,
                         NoDataException

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.
Throws:
  `NullArgumentException` - if `imaginaryCharacter` is `null`.
  `NoDataException` - if `imaginaryCharacter` is an empty string.
  `NullArgumentException` - if `format` is `null`.

#### ComplexFormat

    public ComplexFormat(java.lang.String imaginaryCharacter,
                 java.text.NumberFormat realFormat,
                 java.text.NumberFormat imaginaryFormat)
                  throws NullArgumentException,
                         NoDataException

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.
Throws:
  `NullArgumentException` - if `imaginaryCharacter` is `null`.
  `NoDataException` - if `imaginaryCharacter` is an empty string.
  `NullArgumentException` - if `imaginaryFormat` is `null`.
  `NullArgumentException` - if `realFormat` is `null`.

### Method Detail

#### getAvailableLocales

    public static java.util.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.

#### format

    public java.lang.String format(Complex c)

This method calls `format(Object,StringBuffer,FieldPosition)`.

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

#### format

    public java.lang.String format(java.lang.Double c)

This method calls `format(Object,StringBuffer,FieldPosition)`.

Parameters:
  `c` - Double object to format.
Returns:
  A formatted number.

#### format

    public java.lang.StringBuffer format(Complex complex,
                                java.lang.StringBuffer toAppendTo,
                                java.text.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.

#### formatImaginary

    private java.lang.StringBuffer formatImaginary(double absIm,
                                         java.lang.StringBuffer toAppendTo,
                                         java.text.FieldPosition pos)

Format the absolute value of the imaginary part.

Parameters:
  `absIm` - Absolute value of the imaginary part of a complex number.
  `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 java.lang.StringBuffer format(java.lang.Object obj,
                                java.lang.StringBuffer toAppendTo,
                                java.text.FieldPosition pos)
                                  throws MathIllegalArgumentException

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.

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:
  `MathIllegalArgumentException` - is `obj` is not a valid type.
See Also:
  `Format.format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition)`

#### getImaginaryCharacter

    public java.lang.String getImaginaryCharacter()

Access the imaginaryCharacter.

Returns:
  the imaginaryCharacter.

#### getImaginaryFormat

    public java.text.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(java.util.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.

#### getInstance

    public static ComplexFormat getInstance(java.lang.String imaginaryCharacter,
                            java.util.Locale locale)
                                     throws NullArgumentException,
                                            NoDataException

Returns the default complex format for the given locale.

Parameters:
  `locale` - the specific locale used by the format.
  `imaginaryCharacter` - Imaginary character.
Returns:
  the complex format specific to the given locale.
Throws:
  `NullArgumentException` - if `imaginaryCharacter` is `null`.
  `NoDataException` - if `imaginaryCharacter` is an empty string.

#### getRealFormat

    public java.text.NumberFormat getRealFormat()

Access the realFormat.

Returns:
  the realFormat.

#### parse

    public Complex parse(java.lang.String source)
                  throws MathParseException

Parses a string to produce a `Complex` object.

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

#### parse

    public Complex parse(java.lang.String source,
                java.text.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.