A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/classicu_1_1ChoiceFormat.html below:

ICU 77.1: icu::ChoiceFormat Class Reference

ChoiceFormat converts between ranges of numeric values and strings for those ranges. More...

  ChoiceFormat (const UnicodeString &pattern, UErrorCode &status)   Constructs a new ChoiceFormat from the pattern string. More...
    ChoiceFormat (const double *limits, const UnicodeString *formats, int32_t count)   Constructs a new ChoiceFormat with the given limits and message strings. More...
    ChoiceFormat (const double *limits, const UBool *closures, const UnicodeString *formats, int32_t count)   Constructs a new ChoiceFormat with the given limits, closure flags and message strings. More...
    ChoiceFormat (const ChoiceFormat &that)   Copy constructor. More...
  const ChoiceFormatoperator= (const ChoiceFormat &that)   Assignment operator. More...
  virtual  ~ChoiceFormat ()   Destructor. More...
  virtual ChoiceFormatclone () const override   Clones this Format object. More...
  virtual bool  operator== (const Format &other) const override   Returns true if the given Format objects are semantically equal. More...
  virtual void  applyPattern (const UnicodeString &pattern, UErrorCode &status)   Sets the pattern. More...
  virtual void  applyPattern (const UnicodeString &pattern, UParseError &parseError, UErrorCode &status)   Sets the pattern. More...
  virtual UnicodeStringtoPattern (UnicodeString &pattern) const   Gets the pattern. More...
  virtual void  setChoices (const double *limitsToCopy, const UnicodeString *formatsToCopy, int32_t count)   Sets the choices to be used in formatting. More...
  virtual void  setChoices (const double *limits, const UBool *closures, const UnicodeString *formats, int32_t count)   Sets the choices to be used in formatting. More...
  virtual const double *  getLimits (int32_t &count) const   Returns nullptr and 0. More...
  virtual const UBoolgetClosures (int32_t &count) const   Returns nullptr and 0. More...
  virtual const UnicodeStringgetFormats (int32_t &count) const   Returns nullptr and 0. More...
  virtual UnicodeStringformat (double number, UnicodeString &appendTo, FieldPosition &pos) const override   Formats a double number using this object's choices. More...
  virtual UnicodeStringformat (int32_t number, UnicodeString &appendTo, FieldPosition &pos) const override   Formats an int32_t number using this object's choices. More...
  virtual UnicodeStringformat (int64_t number, UnicodeString &appendTo, FieldPosition &pos) const override   Formats an int64_t number using this object's choices. More...
  virtual UnicodeStringformat (const Formattable *objs, int32_t cnt, UnicodeString &appendTo, FieldPosition &pos, UErrorCode &success) const   Formats an array of objects using this object's choices. More...
  virtual void  parse (const UnicodeString &text, Formattable &result, ParsePosition &parsePosition) const override   Looks for the longest match of any message string on the input text and, if there is a match, sets the result object to the corresponding range's number. More...
  virtual UClassID  getDynamicClassID () const override   Returns a unique class ID POLYMORPHICALLY. More...
  virtual UnicodeStringformat (const Formattable &obj, UnicodeString &appendTo, FieldPosition &pos, UErrorCode &status) const override   Format an object to produce a string. More...
  virtual UnicodeStringformat (const Formattable &obj, UnicodeString &appendTo, FieldPositionIterator *posIter, UErrorCode &status) const override   Format an object to produce a string. More...
  UnicodeStringformat (double number, UnicodeString &appendTo) const   Format a double number. More...
  UnicodeStringformat (int32_t number, UnicodeString &appendTo) const   Format a long number. More...
  UnicodeStringformat (int64_t number, UnicodeString &appendTo) const   Format an int64 number. More...
  virtual UnicodeStringformat (double number, UnicodeString &appendTo, FieldPosition &pos) const=0   Format a double number. More...
  virtual UnicodeStringformat (double number, UnicodeString &appendTo, FieldPosition &pos, UErrorCode &status) const   Format a double number. More...
  virtual UnicodeStringformat (double number, UnicodeString &appendTo, FieldPositionIterator *posIter, UErrorCode &status) const   Format a double number. More...
  virtual UnicodeStringformat (int32_t number, UnicodeString &appendTo, FieldPosition &pos) const=0   Format a long number. More...
  virtual UnicodeStringformat (int32_t number, UnicodeString &appendTo, FieldPosition &pos, UErrorCode &status) const   Format a long number. More...
  virtual UnicodeStringformat (int32_t number, UnicodeString &appendTo, FieldPositionIterator *posIter, UErrorCode &status) const   Format an int32 number. More...
  virtual UnicodeStringformat (int64_t number, UnicodeString &appendTo, FieldPosition &pos) const   Format an int64 number. More...
  virtual UnicodeStringformat (int64_t number, UnicodeString &appendTo, FieldPosition &pos, UErrorCode &status) const   Format an int64 number. More...
  virtual UnicodeStringformat (int64_t number, UnicodeString &appendTo, FieldPositionIterator *posIter, UErrorCode &status) const   Format an int64 number. More...
  virtual UnicodeStringformat (StringPiece number, UnicodeString &appendTo, FieldPositionIterator *posIter, UErrorCode &status) const   Format a decimal number. More...
  virtual UnicodeStringformat (const number::impl::DecimalQuantity &number, UnicodeString &appendTo, FieldPositionIterator *posIter, UErrorCode &status) const   Format a decimal number. More...
  virtual UnicodeStringformat (const number::impl::DecimalQuantity &number, UnicodeString &appendTo, FieldPosition &pos, UErrorCode &status) const   Format a decimal number. More...
  virtual void  parse (const UnicodeString &text, Formattable &result, ParsePosition &parsePosition) const=0   Return a long if possible (e.g. More...
  virtual void  parse (const UnicodeString &text, Formattable &result, UErrorCode &status) const   Parse a string as a numeric value, and return a Formattable numeric object. More...
  virtual  ~NumberFormat ()   Destructor. More...
  virtual UnicodeStringformat (const Formattable &obj, UnicodeString &appendTo, FieldPosition &pos, UErrorCode &status) const override   Format an object to produce a string. More...
  virtual UnicodeStringformat (const Formattable &obj, UnicodeString &appendTo, FieldPositionIterator *posIter, UErrorCode &status) const override   Format an object to produce a string. More...
  virtual void  parseObject (const UnicodeString &source, Formattable &result, ParsePosition &parse_pos) const override   Parse a string to produce an object. More...
  UnicodeStringformat (double number, UnicodeString &appendTo) const   Format a double number. More...
  UnicodeStringformat (int32_t number, UnicodeString &appendTo) const   Format a long number. More...
  UnicodeStringformat (int64_t number, UnicodeString &appendTo) const   Format an int64 number. More...
  virtual UnicodeStringformat (double number, UnicodeString &appendTo, FieldPosition &pos, UErrorCode &status) const   Format a double number. More...
  virtual UnicodeStringformat (double number, UnicodeString &appendTo, FieldPositionIterator *posIter, UErrorCode &status) const   Format a double number. More...
  virtual UnicodeStringformat (int32_t number, UnicodeString &appendTo, FieldPosition &pos, UErrorCode &status) const   Format a long number. More...
  virtual UnicodeStringformat (int32_t number, UnicodeString &appendTo, FieldPositionIterator *posIter, UErrorCode &status) const   Format an int32 number. More...
  virtual UnicodeStringformat (int64_t number, UnicodeString &appendTo, FieldPosition &pos, UErrorCode &status) const   Format an int64 number. More...
  virtual UnicodeStringformat (int64_t number, UnicodeString &appendTo, FieldPositionIterator *posIter, UErrorCode &status) const   Format an int64 number. More...
  virtual UnicodeStringformat (StringPiece number, UnicodeString &appendTo, FieldPositionIterator *posIter, UErrorCode &status) const   Format a decimal number. More...
  virtual UnicodeStringformat (const number::impl::DecimalQuantity &number, UnicodeString &appendTo, FieldPositionIterator *posIter, UErrorCode &status) const   Format a decimal number. More...
  virtual UnicodeStringformat (const number::impl::DecimalQuantity &number, UnicodeString &appendTo, FieldPosition &pos, UErrorCode &status) const   Format a decimal number. More...
  virtual void  parse (const UnicodeString &text, Formattable &result, UErrorCode &status) const   Parse a string as a numeric value, and return a Formattable numeric object. More...
  virtual CurrencyAmountparseCurrency (const UnicodeString &text, ParsePosition &pos) const   Parses text from the given string as a currency amount. More...
  UBool  isParseIntegerOnly () const   Return true if this format will parse numbers as integers only. More...
  virtual void  setParseIntegerOnly (UBool value)   Sets whether or not numbers should be parsed as integers only. More...
  virtual void  setLenient (UBool enable)   Sets whether lenient parsing should be enabled (it is off by default). More...
  virtual UBool  isLenient () const   Returns whether lenient parsing is enabled (it is off by default). More...
  UBool  isGroupingUsed () const   Returns true if grouping is used in this format. More...
  virtual void  setGroupingUsed (UBool newValue)   Set whether or not grouping will be used in this format. More...
  int32_t  getMaximumIntegerDigits () const   Returns the maximum number of digits allowed in the integer portion of a number. More...
  virtual void  setMaximumIntegerDigits (int32_t newValue)   Sets the maximum number of digits allowed in the integer portion of a number. More...
  int32_t  getMinimumIntegerDigits () const   Returns the minimum number of digits allowed in the integer portion of a number. More...
  virtual void  setMinimumIntegerDigits (int32_t newValue)   Sets the minimum number of digits allowed in the integer portion of a number. More...
  int32_t  getMaximumFractionDigits () const   Returns the maximum number of digits allowed in the fraction portion of a number. More...
  virtual void  setMaximumFractionDigits (int32_t newValue)   Sets the maximum number of digits allowed in the fraction portion of a number. More...
  int32_t  getMinimumFractionDigits () const   Returns the minimum number of digits allowed in the fraction portion of a number. More...
  virtual void  setMinimumFractionDigits (int32_t newValue)   Sets the minimum number of digits allowed in the fraction portion of a number. More...
  virtual void  setCurrency (const char16_t *theCurrency, UErrorCode &ec)   Sets the currency used to display currency amounts. More...
  const char16_t *  getCurrency () const   Gets the currency used to display currency amounts. More...
  virtual void  setContext (UDisplayContext value, UErrorCode &status)   Set a particular UDisplayContext value in the formatter, such as UDISPCTX_CAPITALIZATION_FOR_STANDALONE. More...
  virtual UDisplayContext  getContext (UDisplayContextType type, UErrorCode &status) const   Get the formatter's UDisplayContext value for the specified UDisplayContextType, such as UDISPCTX_TYPE_CAPITALIZATION. More...
  virtual ERoundingMode  getRoundingMode () const   Get the rounding mode. More...
  virtual void  setRoundingMode (ERoundingMode roundingMode)   Set the rounding mode. More...
  UnicodeStringformat (const Formattable &obj, UnicodeString &appendTo, UErrorCode &status) const   Formats an object to produce a string. More...
  virtual UnicodeStringformat (const Formattable &obj, UnicodeString &appendTo, FieldPosition &pos, UErrorCode &status) const=0   Format an object to produce a string. More...
  virtual UnicodeStringformat (const Formattable &obj, UnicodeString &appendTo, FieldPositionIterator *posIter, UErrorCode &status) const   Format an object to produce a string. More...
  virtual  ~Format ()   Destructor. More...
  bool  operator!= (const Format &other) const   Return true if the given Format objects are not semantically equal. More...
  UnicodeStringformat (const Formattable &obj, UnicodeString &appendTo, UErrorCode &status) const   Formats an object to produce a string. More...
  void  parseObject (const UnicodeString &source, Formattable &result, UErrorCode &status) const   Parses a string to produce an object. More...
  Locale  getLocale (ULocDataLocaleType type, UErrorCode &status) const   Get the locale for this format object. More...
  const char *  getLocaleID (ULocDataLocaleType type, UErrorCode &status) const   Get the locale for this format object. More...
  virtual  ~UObject ()   Destructor. More...
  static UClassID  getStaticClassID ()   Returns the class ID for this class. More...
  static NumberFormatcreateInstance (UErrorCode &)   Create a default style NumberFormat for the current default locale. More...
  static NumberFormatcreateInstance (const Locale &inLocale, UErrorCode &)   Create a default style NumberFormat for the specified locale. More...
  static NumberFormatcreateInstance (const Locale &desiredLocale, UNumberFormatStyle style, UErrorCode &errorCode)   Create a specific style NumberFormat for the specified locale. More...
  static NumberFormatinternalCreateInstance (const Locale &desiredLocale, UNumberFormatStyle style, UErrorCode &errorCode)   ICU use only. More...
  static const SharedNumberFormat *  createSharedInstance (const Locale &inLocale, UNumberFormatStyle style, UErrorCode &status)   ICU use only. More...
  static NumberFormatcreateCurrencyInstance (UErrorCode &)   Returns a currency format for the current default locale. More...
  static NumberFormatcreateCurrencyInstance (const Locale &inLocale, UErrorCode &)   Returns a currency format for the specified locale. More...
  static NumberFormatcreatePercentInstance (UErrorCode &)   Returns a percentage format for the current default locale. More...
  static NumberFormatcreatePercentInstance (const Locale &inLocale, UErrorCode &)   Returns a percentage format for the specified locale. More...
  static NumberFormatcreateScientificInstance (UErrorCode &)   Returns a scientific format for the current default locale. More...
  static NumberFormatcreateScientificInstance (const Locale &inLocale, UErrorCode &)   Returns a scientific format for the specified locale. More...
  static const LocalegetAvailableLocales (int32_t &count)   Get the set of Locales for which NumberFormats are installed. More...
  static URegistryKey  registerFactory (NumberFormatFactory *toAdopt, UErrorCode &status)   Register a new NumberFormatFactory. More...
  static UBool  unregister (URegistryKey key, UErrorCode &status)   Unregister a previously-registered NumberFormatFactory using the key returned from the register call. More...
  static StringEnumerationgetAvailableLocales ()   Return a StringEnumeration over the locales available at the time of the call, including registered locales. More...
  static UClassID  getStaticClassID ()   Return the class ID for this class. More...
  enum   ERoundingMode {
  kRoundCeiling , kRoundFloor , kRoundDown , kRoundUp ,
  kRoundHalfEven , kRoundHalfDown , kRoundHalfUp , kRoundUnnecessary ,
  kRoundHalfOdd , kRoundHalfCeiling , kRoundHalfFloor
}   Rounding mode. More...
  enum   EAlignmentFields {
  kIntegerField = UNUM_INTEGER_FIELD , kFractionField = UNUM_FRACTION_FIELD , kDecimalSeparatorField = UNUM_DECIMAL_SEPARATOR_FIELD , kExponentSymbolField = UNUM_EXPONENT_SYMBOL_FIELD ,
  kExponentSignField = UNUM_EXPONENT_SIGN_FIELD , kExponentField = UNUM_EXPONENT_FIELD , kGroupingSeparatorField = UNUM_GROUPING_SEPARATOR_FIELD , kCurrencyField = UNUM_CURRENCY_FIELD ,
  kPercentField = UNUM_PERCENT_FIELD , kPermillField = UNUM_PERMILL_FIELD , kSignField = UNUM_SIGN_FIELD , kMeasureUnitField = UNUM_MEASURE_UNIT_FIELD ,
  kCompactField = UNUM_COMPACT_FIELD , INTEGER_FIELD = UNUM_INTEGER_FIELD , FRACTION_FIELD = UNUM_FRACTION_FIELD
}   Alignment Field constants used to construct a FieldPosition object. More...
    NumberFormat ()   Default constructor for subclass use only. More...
    NumberFormat (const NumberFormat &)   Copy constructor. More...
  NumberFormatoperator= (const NumberFormat &)   Assignment operator. More...
  virtual void  getEffectiveCurrency (char16_t *result, UErrorCode &ec) const   Returns the currency in effect for this formatter. More...
  void  setLocaleIDs (const char *valid, const char *actual)     Format ()   Default constructor for subclass use only. More...
    Format (const Format &)   Formatoperator= (const Format &)   static NumberFormatmakeInstance (const Locale &desiredLocale, UNumberFormatStyle style, UBool mustBeDecimalFormat, UErrorCode &errorCode)   Creates the specified number format style of the desired locale. More...
  static void  syntaxError (const UnicodeString &pattern, int32_t pos, UParseError &parseError)   Simple function for initializing a UParseError from a UnicodeString. More...
  static const int32_t  gDefaultMaxIntegerDigits   static const int32_t  gDefaultMinIntegerDigits  

ChoiceFormat converts between ranges of numeric values and strings for those ranges.

The strings must conform to the MessageFormat pattern syntax.

ChoiceFormat is probably not what you need. Please use MessageFormat with plural arguments for proper plural selection, and select arguments for simple selection among a fixed set of choices!

A ChoiceFormat splits the real number line -∞ to +∞ into two or more contiguous ranges. Each range is mapped to a string.

ChoiceFormat was originally intended for displaying grammatically correct plurals such as "There is one file." vs. "There are 2 files." However, plural rules for many languages are too complex for the capabilities of ChoiceFormat, and its requirement of specifying the precise rules for each message is unmanageable for translators.

There are two methods of defining a ChoiceFormat; both are equivalent. The first is by using a string pattern. This is the preferred method in most cases. The second method is through direct specification of the arrays that logically make up the ChoiceFormat.

Note: Typically, choice formatting is done (if done at all) via MessageFormat with a choice argument type, rather than using a stand-alone ChoiceFormat.

Patterns and Their Interpretation

The pattern string defines the range boundaries and the strings for each number range. Syntax:

choiceStyle = number separator message ('|' number separator message)*
number = normal_number | ['-'] ∞ (U+221E, infinity)
normal_number = double value (unlocalized ASCII string)
separator = less_than | less_than_or_equal
less_than = '<'
less_than_or_equal = '#' | ≤ (U+2264)
message: see MessageFormat

Pattern_White_Space between syntax elements is ignored, except around each range's sub-message.

Each numeric sub-range extends from the current range's number to the next range's number. The number itself is included in its range if a less_than_or_equal sign is used, and excluded from its range (and instead included in the previous range) if a less_than sign is used.

When a ChoiceFormat is constructed from arrays of numbers, closure flags and strings, they are interpreted just like the sequence of (number separator string) in an equivalent pattern string. closure[i]==true corresponds to a less_than separator sign. The equivalent pattern string will be constructed automatically.

During formatting, a number is mapped to the first range where the number is not greater than the range's upper limit. That range's message string is returned. A NaN maps to the very first range.

During parsing, a range is selected for the longest match of any range's message. That range's number is returned, ignoring the separator/closure. Only a simple string match is performed, without parsing of arguments that might be specified in the message strings.

Note that the first range's number is ignored in formatting but may be returned from parsing.

Examples

Here is an example of two arrays that map the number 1..7 to the English day of the week abbreviations Sun..Sat. No closures array is given; this is the same as specifying all closures to be false.

    {1,2,3,4,5,6,7},
    {"Sun","Mon","Tue","Wed","Thur","Fri","Sat"}

Here is an example that maps the ranges [-Inf, 1), [1, 1], and (1, +Inf] to three strings. That is, the number line is split into three ranges: x < 1.0, x = 1.0, and x > 1.0. (The round parentheses in the notation above indicate an exclusive boundary, like the turned bracket in European notation: [-Inf, 1) == [-Inf, 1[ )

    {0, 1, 1},
    {false, false, true},
    {"no files", "one file", "many files"}

Here is an example that shows formatting and parsing:

#include <iostream.h>

int main(int argc, char *argv[]) {

double limits[] = {1,2,3,4,5,6,7};

UnicodeString monthNames[] = {

"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};

UnicodeString str;

char buf[256];

for (double x = 1.0; x <= 8.0; x += 1.0) {

fmt.format(x, str);

str.extract(0, str.length(), buf, 256, "");

str.truncate(0);

cout << x << " -> "

<< buf << endl;

}

cout << endl;

return 0;

}

ChoiceFormat(const UnicodeString &pattern, UErrorCode &status)

Constructs a new ChoiceFormat from the pattern string.

User subclasses are not supported. While clients may write subclasses, such code will not necessarily work and will not be guaranteed to work stably from release to release.

Deprecated:
ICU 49 Use MessageFormat instead, with plural and select arguments.

Definition at line 176 of file choicfmt.h.

virtual void icu::NumberFormat::parse

Return a long if possible (e.g.

within range LONG_MAX, LONG_MAX], and with no decimals), otherwise a double. If IntegerOnly is set, will stop at a decimal point (or equivalent; e.g. for rational numbers "1 2/3", will stop after the 1).

If no object can be parsed, index is unchanged, and nullptr is returned.

This is a pure virtual which concrete subclasses must implement.

Parameters
text The text to be parsed. result Formattable to be set to the parse result. If parse fails, return contents are undefined. parsePosition The position to start parsing at on input. On output, moved to after the last successfully parse character. On parse failure, does not change.
Stable:
ICU 2.0

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4