Package org.hipparchus.fraction
Class ProperBigFractionFormat
- java.lang.Object
-
- java.text.Format
-
- java.text.NumberFormat
-
- org.hipparchus.fraction.BigFractionFormat
-
- org.hipparchus.fraction.ProperBigFractionFormat
-
- All Implemented Interfaces:
Serializable
,Cloneable
public class ProperBigFractionFormat extends BigFractionFormat
Formats a BigFraction number in proper format. The number format for each of the whole number, numerator and, denominator can be configured.Minus signs are only allowed in the whole number part - i.e., "-3 1/2" is legitimate and denotes -7/2, but "-3 -1/2" is invalid and will result in a
ParseException
.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class java.text.NumberFormat
NumberFormat.Field
-
-
Field Summary
-
Fields inherited from class java.text.NumberFormat
FRACTION_FIELD, INTEGER_FIELD
-
-
Constructor Summary
Constructors Constructor Description ProperBigFractionFormat()
Create a proper formatting instance with the default number format for the whole, numerator, and denominator.ProperBigFractionFormat(NumberFormat format)
Create a proper formatting instance with a custom number format for the whole, numerator, and denominator.ProperBigFractionFormat(NumberFormat wholeFormat, NumberFormat numeratorFormat, NumberFormat denominatorFormat)
Create a proper formatting instance with a custom number format for each of the whole, numerator, and denominator.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description StringBuffer
format(double value, StringBuffer buffer, FieldPosition position)
Formats a double value as a fraction and appends the result to a StringBuffer.StringBuffer
format(long value, StringBuffer buffer, FieldPosition position)
Formats a long value as a fraction and appends the result to a StringBuffer.StringBuffer
format(BigFraction fraction, StringBuffer toAppendTo, FieldPosition pos)
Formats aBigFraction
object to produce a string.protected static NumberFormat
getDefaultNumberFormat()
Create a default number format.protected static NumberFormat
getDefaultNumberFormat(Locale locale)
Create a default number format.NumberFormat
getDenominatorFormat()
Access the denominator format.NumberFormat
getNumeratorFormat()
Access the numerator format.NumberFormat
getWholeFormat()
Access the whole format.BigFraction
parse(String source, ParsePosition pos)
Parses a string to produce aBigFraction
object.protected static void
parseAndIgnoreWhitespace(String source, ParsePosition pos)
Parsessource
until a non-whitespace character is found.protected static char
parseNextCharacter(String source, ParsePosition pos)
Parsessource
until a non-whitespace character is found.-
Methods inherited from class org.hipparchus.fraction.BigFractionFormat
format, formatBigFraction, getAvailableLocales, getImproperInstance, getImproperInstance, getProperInstance, getProperInstance, parse, parseNextBigInteger
-
Methods inherited from class java.text.NumberFormat
clone, equals, format, format, getCurrency, getCurrencyInstance, getCurrencyInstance, getInstance, getInstance, getIntegerInstance, getIntegerInstance, getMaximumFractionDigits, getMaximumIntegerDigits, getMinimumFractionDigits, getMinimumIntegerDigits, getNumberInstance, getNumberInstance, getPercentInstance, getPercentInstance, getRoundingMode, hashCode, isGroupingUsed, isParseIntegerOnly, parseObject, setCurrency, setGroupingUsed, setMaximumFractionDigits, setMaximumIntegerDigits, setMinimumFractionDigits, setMinimumIntegerDigits, setParseIntegerOnly, setRoundingMode
-
Methods inherited from class java.text.Format
format, formatToCharacterIterator, parseObject
-
-
-
-
Constructor Detail
-
ProperBigFractionFormat
public ProperBigFractionFormat()
Create a proper formatting instance with the default number format for the whole, numerator, and denominator.
-
ProperBigFractionFormat
public ProperBigFractionFormat(NumberFormat format)
Create a proper formatting instance with a custom number format for the whole, numerator, and denominator.- Parameters:
format
- the custom format for the whole, numerator, and denominator.- Throws:
NullArgumentException
- if the provided format is null.
-
ProperBigFractionFormat
public ProperBigFractionFormat(NumberFormat wholeFormat, NumberFormat numeratorFormat, NumberFormat denominatorFormat)
Create a proper formatting instance with a custom number format for each of the whole, numerator, and denominator.- Parameters:
wholeFormat
- the custom format for the whole.numeratorFormat
- the custom format for the numerator.denominatorFormat
- the custom format for the denominator.- Throws:
NullArgumentException
- if either provided format is null.
-
-
Method Detail
-
format
public StringBuffer format(BigFraction fraction, StringBuffer toAppendTo, FieldPosition pos)
Formats aBigFraction
object to produce a string. The BigFraction is output in proper format.- Overrides:
format
in classBigFractionFormat
- Parameters:
fraction
- the object to format.toAppendTo
- where the text is to be appendedpos
- On input: an alignment field, if desired. On output: the offsets of the alignment field- Returns:
- the value passed in as toAppendTo.
-
getWholeFormat
public NumberFormat getWholeFormat()
Access the whole format.- Returns:
- the whole format.
-
parse
public BigFraction parse(String source, ParsePosition pos)
Parses a string to produce aBigFraction
object. This method expects the string to be formatted as a proper BigFraction.Minus signs are only allowed in the whole number part - i.e., "-3 1/2" is legitimate and denotes -7/2, but "-3 -1/2" is invalid and will result in a
ParseException
.- Overrides:
parse
in classBigFractionFormat
- Parameters:
source
- the string to parsepos
- input/ouput parsing parameter.- Returns:
- the parsed
BigFraction
object.
-
getDefaultNumberFormat
protected static NumberFormat getDefaultNumberFormat()
Create a default number format. The default number format is based onNumberFormat.getNumberInstance(java.util.Locale)
. The only customization is the maximum number of BigFraction digits, which is set to 0.- Returns:
- the default number format.
-
getDefaultNumberFormat
protected static NumberFormat getDefaultNumberFormat(Locale locale)
Create a default number format. The default number format is based onNumberFormat.getNumberInstance(java.util.Locale)
. The only customization is the maximum number of BigFraction digits, which is set to 0.- Parameters:
locale
- the specific locale used by the format.- Returns:
- the default number format specific to the given locale.
-
getDenominatorFormat
public NumberFormat getDenominatorFormat()
Access the denominator format.- Returns:
- the denominator format.
-
getNumeratorFormat
public NumberFormat getNumeratorFormat()
Access the numerator format.- Returns:
- the numerator format.
-
parseAndIgnoreWhitespace
protected static void parseAndIgnoreWhitespace(String source, ParsePosition pos)
Parsessource
until a non-whitespace character is found.- Parameters:
source
- the string to parsepos
- input/output parsing parameter. On output,pos
holds the index of the next non-whitespace character.
-
parseNextCharacter
protected static char parseNextCharacter(String source, ParsePosition pos)
Parsessource
until a non-whitespace character is found.- Parameters:
source
- the string to parsepos
- input/output parsing parameter.- Returns:
- the first non-whitespace character.
-
format
public StringBuffer format(double value, StringBuffer buffer, FieldPosition position)
Formats a double value as a fraction and appends the result to a StringBuffer.- Specified by:
format
in classNumberFormat
- Parameters:
value
- the double value to formatbuffer
- StringBuffer to append toposition
- On input: an alignment field, if desired. On output: the offsets of the alignment field- Returns:
- a reference to the appended buffer
- See Also:
NumberFormat.format(Object, StringBuffer, FieldPosition)
-
format
public StringBuffer format(long value, StringBuffer buffer, FieldPosition position)
Formats a long value as a fraction and appends the result to a StringBuffer.- Specified by:
format
in classNumberFormat
- Parameters:
value
- the long value to formatbuffer
- StringBuffer to append toposition
- On input: an alignment field, if desired. On output: the offsets of the alignment field- Returns:
- a reference to the appended buffer
- See Also:
NumberFormat.format(Object, StringBuffer, FieldPosition)
-
-