Most visited

Recently visited

Added in API level 24

DecimalFormat

public class DecimalFormat
extends NumberFormat

java.lang.Object
   ↳ java.text.Format
     ↳ android.icu.text.UFormat
       ↳ android.icu.text.NumberFormat
         ↳ android.icu.text.DecimalFormat
Known Direct Subclasses


[icu增强] ICU更换DecimalFormat ICU特有的方法,字段和其他功能标记为“ [icu] ”。 DecimalFormat是格式为十进制数的NumberFormat的具体子类。 它具有多种功能,可以在任何语言环境中解析和格式化数字,包括支持西文,阿拉伯文或印度文数字。 它还支持不同类型的数字,包括整数(“123”),定点数字(“123.4”),科学记数法(“1.23E4”),百分比(“12%”)和货币金额(“123.00美元” ,“123.00美元”,“123.00美元”)。 所有这些口味都可以轻松本地化。

要获取NumberFormat的特定区域设置(包括默认区域设置),请调用NumberFormat的工厂方法之一,如getInstance() 除非你知道你在做什么,否则不要直接调用DecimalFormat构造函数,因为NumberFormat工厂方法可能会返回除DecimalFormat子类。 如果您需要自定义格式对象,请执行以下操作:

 NumberFormat f = NumberFormat.getInstance(loc);
 if (f instanceof DecimalFormat) {
     ((DecimalFormat) f).setDecimalSeparatorAlwaysShown(true);
 }

示例用法使用每种语言环境的本地化数字,货币和百分比格式打印出一个数字。

 Locale[] locales = NumberFormat.getAvailableLocales();
 double myNumber = -1234.56;
 NumberFormat format;
 for (int j=0; j<3; ++j) {
     System.out.println("FORMAT");
     for (int i = 0; i < locales.length; ++i) {
         if (locales[i].getCountry().length() == 0) {
            // Skip language-only locales
            continue;
         }
         System.out.print(locales[i].getDisplayName());
         switch (j) {
         case 0:
             format = NumberFormat.getInstance(locales[i]); break;
         case 1:
             format = NumberFormat.getCurrencyInstance(locales[i]); break;
         default:
             format = NumberFormat.getPercentInstance(locales[i]); break;
         }
         try {
             // Assume format is a DecimalFormat
             System.out.print(": " + ((DecimalFormat) format).toPattern()
                              + " -> " + form.format(myNumber));
         } catch (Exception e) {}
         try {
             System.out.println(" -> " + format.parse(form.format(myNumber)));
         } catch (ParseException e) {}
     }
 }

另一个例子使用getInstance(style)。
使用本地化号码,货币,百分比,科学,整数,iso货币和每种语言环境的复数货币格式打印出一个数字。

 ULocale locale = new ULocale("en_US");
 double myNumber = 1234.56;
 for (int j=NumberFormat.NUMBERSTYLE; j<=NumberFormat.PLURALCURRENCYSTYLE; ++j) {
     NumberFormat format = NumberFormat.getInstance(locale, j);
     try {
         // Assume format is a DecimalFormat
         System.out.print(": " + ((DecimalFormat) format).toPattern()
                          + " -> " + form.format(myNumber));
     } catch (Exception e) {}
     try {
         System.out.println(" -> " + format.parse(form.format(myNumber)));
     } catch (ParseException e) {}
 }

Patterns

一个DecimalFormat由一个模式和一组符号组成 该模式可以直接使用applyPattern(String)来设置,或者间接使用操纵模式方面的其他API方法,例如最小数量的整数数字。 符号存储在DecimalFormatSymbols对象中。 使用NumberFormat工厂方法时,将从ICU的区域设置数据中读取模式和符号。

Special Pattern Characters

模式中的许多字符都是字面上的; 它们在分析过程中被匹配并且在格式化过程中输出不变。 另一方面,特殊字符代表其他字符,字符串或类别的字符。 例如,'#'字符被替换为本地化数字。 替换字符通常与模式字符相同; 在美国的语言环境中,','分组字符被替换为','。 但是,替换仍在发生,如果符号被修改,分组字符会改变。 一些特殊字符会影响格式化程序的行为。 例如,如果看到百分比字符,则在显示之前将该值乘以100。

要将特殊字符作为文字插入模式,即没有任何特殊含义,必须引用该字符。 有一些例外情况如下所述。

此处列出的字符用于非本地化模式。 本地化模式使用从此格式化程序的DecimalFormatSymbols对象中取得的相应字符,而这些字符将失去其特殊状态。 货币符号和报价是两个例外,它们不是本地化的。

Symbol Location Localized? Meaning
0 Number Yes Digit
1-9 Number Yes '1' through '9' indicate rounding.
@ Number No Significant digit
# Number Yes Digit, zero shows as absent
. Number Yes Decimal separator or monetary decimal separator
- Number Yes Minus sign
, Number Yes Grouping separator
E Number Yes Separates mantissa and exponent in scientific notation. Need not be quoted in prefix or suffix.
+ Exponent Yes Prefix positive exponents with localized plus sign. Need not be quoted in prefix or suffix.
; Subpattern boundary Yes Separates positive and negative subpatterns
% Prefix or suffix Yes Multiply by 100 and show as percentage
\u2030 Prefix or suffix Yes Multiply by 1000 and show as per mille
¤ (\u00A4) Prefix or suffix No Currency sign, replaced by currency symbol. If doubled, replaced by international currency symbol. If tripled, replaced by currency plural names, for example, "US dollar" or "US dollars" for America. If present in a pattern, the monetary decimal separator is used instead of the decimal separator.
' Prefix or suffix No Used to quote special characters in a prefix or suffix, for example, "'#'#" formats 123 to "#123". To create a single quote itself, use two in a row: "# o''clock".
* Prefix or suffix boundary Yes Pad escape, precedes pad character

DecimalFormat模式包含DecimalFormat和负面的子模式,例如“#,## 0.00;(#,## 0.00)”。 每个子模式都有一个前缀,一个数字部分和一个后缀。 如果没有明确的负子模式,则负子模式是正子模式前缀的本地化负号。 也就是说,仅“0.00”等于“0.00; -0.00”。 如果存在明确的负面子模式,则仅用于指定负面前缀和后缀; 负数子模式中将忽略数字位数,最小位数和其他特征。 这意味着“#,## 0.0#;(#)”的结果与“#,## 0.0#;(#,## 0.0#)”的结果完全相同。

用于无穷大,数字,千位分隔符,小数点分隔符等的前缀,后缀和各种符号可以设置为任意值,并且在格式化过程中它们将正确显示。 但是,必须注意符号和字符串不冲突,否则解析将不可靠。 例如,对于parse(String) ,正面和负面前缀或后缀必须是不同的,才能区分正值和负值。 另一个例子是小数点分隔符和千位分隔符应该是不同的字符,否则解析将是不可能的。

分组分隔符是一个字符,用于分隔整数数字的集群以使大量数字更清晰易读。 它通常用于数以千计,但在某些地区,它将分隔数以万计。 分组大小是分组分隔符之间的位数,例如3表示“100,000,000”,4表示“1 0000 0000”。 实际上有两种不同的分组大小:一种用于最小有效整数数字, 主要分组大小 ,另一种用于所有其他分组大小次要分组大小 在大多数地区,这些都是一样的,但有时它们是不同的。 例如,如果主要分组间隔为3,次要分组间隔为2,则这对应于模式“#,##,## 0”,并且数字123456789被格式化为“12,34,56,789”。 如果一个模式包含多个分组分隔符,则最后一个与整数末尾之间的间隔将定义主要分组大小,最后两个之间的间隔将定义次要分组大小。 所有其他人都会被忽略,所以“#,##,###,####”==“###,###,####”==“##,#,###,# ###”。

非法模式(例如“#。#。#”或“#。###,###”)将导致 DecimalFormatIllegalArgumentException发送一条描述该问题的消息。

Pattern BNF

 pattern    := subpattern (';' subpattern)?
 subpattern := prefix? number exponent? suffix?
 number     := (integer ('.' fraction)?) | sigDigits
 prefix     := '\u0000'..'\uFFFD' - specialCharacters
 suffix     := '\u0000'..'\uFFFD' - specialCharacters
 integer    := '#'* '0'* '0'
 fraction   := '0'* '#'*
 sigDigits  := '#'* '@' '@'* '#'*
 exponent   := 'E' '+'? '0'* '0'
 padSpec    := '*' padChar
 padChar    := '\u0000'..'\uFFFD' - quote
  
 Notation:
   X*       0 or more instances of X
   X?       0 or 1 instances of X
   X|Y      either X or Y
   C..D     any character from C up to D, inclusive
   S-T      characters in S, except those in T
 
The first subpattern is for positive numbers. The second (optional) subpattern is for negative numbers.

在上面的BNF语法中没有指出:

Parsing

DecimalFormat解析所有代表十进制数字的Unicode字符,如digit(int)所定义。 另外, DecimalFormat还将DecimalFormatSymbols对象中定义的以本地零位数开始的十个连续字符识别为数字。 在格式化过程中,将DecimalFormatSymbols基于DecimalFormatSymbols的数字。

在分析过程中,分组分隔符将被忽略。

对于货币解析,格式器能够解析每种货币风格格式,而不管格式器使用哪种风格。 例如,从NumberFormat.getInstance(ULocale,NumberFormat.CURRENCYSTYLE)获取的格式化程序实例可以解析诸如“USD1.00”和“3.00美元”之类的格式。

如果parse(String, ParsePosition)未能解析字符串,则返回null并保持解析位置不变。 的便利方法parse(String)表示通过投掷失败解析ParseException

解析极大或小的绝对值(如1.0E10000或1.0E-10000)需要大量的内存分配来表示分析的数字。 这样的输入可能会带来DoS攻击的风险。 为了防止由这样的输入触发巨大的内存分配, DecimalFormat内部最大小数位数限制为1000.因此,以普通十进制表示形式(非指数)产生的超过1000个数字的输入字符串将被视为溢出(正/负无限)或下溢(+ 0.0 / -0.0)。

Formatting

格式化由几个参数引导,所有这些参数都可以使用模式或使用API来指定。 以下描述适用于不使用scientific notationsignificant digits的格式。

特殊的价值

NaN表示为单个字符,通常为\uFFFD 该字符由DecimalFormatSymbols对象决定。 这是不使用前缀和后缀的唯一值。

Infinity表示为单个字符,通常为\u221E ,应用正数或负数的前缀和后缀。 无穷大字符由DecimalFormatSymbols对象确定。

Scientific Notation

科学记数法中的数字表示为尾数和十的乘方的乘积,例如,1234可以表示为1.234×10 3 尾数通常在半开区间[1.0,10.0)或有时[0.0,1.0],但不一定是。 DecimalFormat支持任意DecimalFormat 可以指示DecimalFormat通过API或通过模式使用科学记数法。 在一种模式中,紧接着一个或多个数字字符的指数字符表示科学记数法。 例如:“0。### E0”将数字1234格式化为“1.234E3”。

Significant Digits

DecimalFormat has two ways of controlling how many digits are shows: (a) significant digits counts, or (b) integer and fraction digit counts. Integer and fraction digit counts are described above. When a formatter is using significant digits counts, the number of integer and fraction digits is not specified directly, and the formatter settings for these counts are ignored. Instead, the formatter uses however many integer and fraction digits are required to display the specified number of significant digits. Examples:
Pattern Minimum significant digits Maximum significant digits Number Output of format()
@@@ 3 3 12345 12300
@@@ 3 3 0.12345 0.123
@@## 2 4 3.14159 3.142
@@## 2 4 1.23004 1.23

Padding

DecimalFormat载体填充的结果format(BigDecimal)到特定的宽度。 填充可以通过API或通过模式语法指定。 在一个模式中,填充字符转义字符,后跟一个填充字符,使填充分析和格式化。 pad转义字符是非本地化模式中的'*',可以使用setPadEscape(char)进行本地化。 例如, "$*x#,##0.00"格式123至"$xx123.00"和1234至"$1,234.00"

四舍五入

DecimalFormat支持对特定增量进行四舍五入。 例如,1230舍入到最接近的50是1250. 1.234舍入到最接近的0.65是1.3。 舍入增量可以通过API或模式指定。 要在模式中指定舍入增量,请在模式本身中包含增量。 “#,#50”指定50的舍入增量。“#,## 0.05”指定0.05的舍入增量。

Synchronization

DecimalFormat对象不同步。 多个线程不应该同时访问一个格式化程序。

也可以看看:

Summary

Constants

int PAD_AFTER_PREFIX

[icu] getPadPosition()setPadPosition(int)常数,用于指定在前缀后面插入填充字符。

int PAD_AFTER_SUFFIX

[icu] getPadPosition()setPadPosition(int)常数,用于指定在后缀后插入的填充字符。

int PAD_BEFORE_PREFIX

[icu] getPadPosition()setPadPosition(int)常数,用于指定在前缀之前插入的填充字符。

int PAD_BEFORE_SUFFIX

[icu]用于指定 getPadPosition()setPadPosition(int)常量,用于指定在后缀之前插入的填充字符。

Inherited constants

From class android.icu.text.NumberFormat

Public constructors

DecimalFormat()

使用缺省模式和默认 FORMAT区域设置的符号创建DecimalFormat。

DecimalFormat(String pattern)

根据给定模式和默认 FORMAT语言环境的符号创建DecimalFormat。

DecimalFormat(String pattern, DecimalFormatSymbols symbols)

根据给定的模式和符号创建一个DecimalFormat。

DecimalFormat(String pattern, DecimalFormatSymbols symbols, CurrencyPluralInfo infoInput, int style)

根据给定的模式,符号,用于货币复数格式的信息和格式样式创建DecimalFormat。

Public methods

void applyLocalizedPattern(String pattern)

将给定的模式应用于此Format对象。

void applyPattern(String pattern)

将给定的模式应用于此Format对象。

boolean areSignificantDigitsUsed()

[icu]如果使用有效数字,则返回true;如果使用整数和小数位数,则返回false。

Object clone()

覆盖克隆。

boolean equals(Object obj)

覆盖等于。

StringBuffer format(BigInteger number, StringBuffer result, FieldPosition fieldPosition)

格式化一个BigInteger数字。

StringBuffer format(BigDecimal number, StringBuffer result, FieldPosition fieldPosition)

格式化BigDecimal号码。

StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition)

格式专业化。

StringBuffer format(BigDecimal number, StringBuffer result, FieldPosition fieldPosition)

格式化BigDecimal号码。

StringBuffer format(long number, StringBuffer result, FieldPosition fieldPosition)

格式专业化。

AttributedCharacterIterator formatToCharacterIterator(Object obj)

将对象格式化为属性字符串,并返回相应的迭代器。

CurrencyPluralInfo getCurrencyPluralInfo()

[icu]返回此格式使用的CurrencyPluralInfo的副本。

Currency.CurrencyUsage getCurrencyUsage()

返回用于显示货币的 Currency Usage对象

DecimalFormatSymbols getDecimalFormatSymbols()

返回此格式使用的小数格式符号的副本。

int getFormatWidth()

返回填充 format()的输出的宽度。

int getGroupingSize()

返回分组大小。

MathContext getMathContext()

[icu]返回此格式使用的MathContext。

MathContext getMathContextICU()

[icu]返回此格式使用的MathContext。

int getMaximumSignificantDigits()

[icu]返回将显示的最大有效位数。

byte getMinimumExponentDigits()

[icu]返回将显示的最小指数位数。

int getMinimumSignificantDigits()

[icu]返回将显示的最小有效数字位数。

int getMultiplier()

返回百分比,permill等中使用的乘数

String getNegativePrefix()

返回负面的前缀。

String getNegativeSuffix()

返回负后缀。

char getPadCharacter()

[icu]返回用于填充格式宽度的字符。

int getPadPosition()

[icu]返回填充将发生的位置。

int getParseMaxDigits()

解析数字时获取当前最大数量的指数数字。

String getPositivePrefix()

返回正前缀。

String getPositiveSuffix()

返回正数后缀。

BigDecimal getRoundingIncrement()

[icu]返回舍入增量。

int getRoundingMode()

返回舍入模式。

int getSecondaryGroupingSize()

[icu]返回辅助分组大小。

int hashCode()

重写hashCode。

boolean isDecimalPatternMatchRequired()

[icu]如果模式中有小数点标记,则返回解析输入是否必须包含小数点标记。

boolean isDecimalSeparatorAlwaysShown()

用整数返回小数点分隔符的行为。

boolean isExponentSignAlwaysShown()

[icu]返回是否始终显示指数符号。

boolean isParseBigDecimal()

返回 parse(String, ParsePosition)是否返回BigDecimal。

boolean isScientificNotation()

[icu]返回是否使用科学记数法。

Number parse(String text, ParsePosition parsePosition)

解析给定的字符串,返回一个 Number对象来表示解析的值。

CurrencyAmount parseCurrency(CharSequence text, ParsePosition pos)

将给定字符串中的文本解析为CurrencyAmount。

void setCurrency(Currency theCurrency)

设置用于显示货币金额的 Currency对象。

void setCurrencyPluralInfo(CurrencyPluralInfo newInfo)

[icu]设置此格式使用的CurrencyPluralInfo。

void setCurrencyUsage(Currency.CurrencyUsage newUsage)

设置用于显示货币的 Currency Usage对象。

void setDecimalFormatSymbols(DecimalFormatSymbols newSymbols)

设置此格式使用的小数格式符号。

void setDecimalPatternMatchRequired(boolean value)

当不需要进行小数点匹配时,如果在模式中指定了小数点,则输入不必包含小数点标记。

void setDecimalSeparatorAlwaysShown(boolean newValue)

用整数设置小数点分隔符的行为。

void setExponentSignAlwaysShown(boolean expSignAlways)

[icu]设置是否始终显示指数符号。

void setFormatWidth(int width)

设置填充 format()的输出的宽度。

void setGroupingSize(int newValue)

设置分组大小。

void setMathContext(MathContext newValue)

[icu]设置此格式使用的MathContext。

void setMathContextICU(MathContext newValue)

[icu]设置此格式使用的MathContext。

void setMaximumFractionDigits(int newValue)

设置数字的小数部分允许的最大位数。

void setMaximumIntegerDigits(int newValue)

设置数字整数部分允许的最大位数。

void setMaximumSignificantDigits(int max)

[icu]设置将显示的最大有效位数。

void setMinimumExponentDigits(byte minExpDig)

[icu]设置将显示的最小指数位数。

void setMinimumFractionDigits(int newValue)

设置数字的小数部分中允许的最小位数。

void setMinimumIntegerDigits(int newValue)

设置数字整数部分允许的最小位数。

void setMinimumSignificantDigits(int min)

[icu]设置将显示的最小有效位数。

void setMultiplier(int newValue)

设置用于百分比,permill等的乘数

void setNegativePrefix(String newValue)

设置否定前缀。

void setNegativeSuffix(String newValue)

设置正后缀。

void setPadCharacter(char padChar)

[icu]将用于填充的字符设置为格式宽度。

void setPadPosition(int padPos)

[icu]设置填充将发生的位置。

void setParseBigDecimal(boolean value)

设置 parse(String, ParsePosition)是否返回BigDecimal。

void setParseMaxDigits(int newValue)

分析数字时设置最大指数位数。

void setPositivePrefix(String newValue)

设置正面前缀。

void setPositiveSuffix(String newValue)

设置正后缀。

void setRoundingIncrement(BigDecimal newValue)

[icu]设置舍入增量。

void setRoundingIncrement(BigDecimal newValue)

[icu]设置舍入增量。

void setRoundingIncrement(double newValue)

[icu]设置舍入增量。

void setRoundingMode(int roundingMode)

设置舍入模式。

void setScientificNotation(boolean useScientific)

[icu]设置是否使用科学记数法。

void setSecondaryGroupingSize(int newValue)

[icu]设置次要分组大小。

void setSignificantDigitsUsed(boolean useSignificantDigits)

[icu]设置是否使用有效数字,或者使用整数和小数位数。

String toLocalizedPattern()

合成表示此Format对象当前状态的本地化模式字符串。

String toPattern()

合成表示此Format对象当前状态的模式字符串。

Inherited methods

From class android.icu.text.NumberFormat
From class java.text.Format
From class java.lang.Object

Constants

PAD_AFTER_PREFIX

Added in API level 24
int PAD_AFTER_PREFIX

[icu] getPadPosition()setPadPosition(int)常量,用于指定在前缀后插入的填充字符。

也可以看看:

常数值:1(0x00000001)

PAD_AFTER_SUFFIX

Added in API level 24
int PAD_AFTER_SUFFIX

[icu] getPadPosition()setPadPosition(int)常量,用于指定在后缀后插入的填充字符。

也可以看看:

常量值:3(0x00000003)

PAD_BEFORE_PREFIX

Added in API level 24
int PAD_BEFORE_PREFIX

[icu] getPadPosition()setPadPosition(int)常量用于指定在前缀之前插入的填充字符。

也可以看看:

常量值:0(0x00000000)

PAD_BEFORE_SUFFIX

Added in API level 24
int PAD_BEFORE_SUFFIX

[icu] getPadPosition()setPadPosition(int)常量,用于指定在后缀之前插入的填充字符。

也可以看看:

常量值:2(0x00000002)

Public constructors

DecimalFormat

Added in API level 24
DecimalFormat ()

使用缺省模式和默认FORMAT区域设置的符号创建DecimalFormat。 当国际化不是主要关注点时,这是获取DecimalFormat的便捷方式。

要获取给定语言环境的标准格式,请使用NumberFormat上的工厂方法,例如getNumberInstance。 这些工厂将为给定的语言环境返回最合适的NumberFormat子类。

也可以看看:

DecimalFormat

Added in API level 24
DecimalFormat (String pattern)

根据给定模式和默认FORMAT语言环境的符号创建DecimalFormat。 当国际化不是主要关注点时,这是获取DecimalFormat的便捷方式。

要获取给定语言环境的标准格式,请使用NumberFormat上的工厂方法,例如getNumberInstance。 这些工厂将为给定的语言环境返回最合适的NumberFormat子类。

Parameters
pattern String: A non-localized pattern string.
Throws
IllegalArgumentException if the given pattern is invalid.

也可以看看:

DecimalFormat

Added in API level 24
DecimalFormat (String pattern, 
                DecimalFormatSymbols symbols)

根据给定的模式和符号创建一个DecimalFormat。 当您需要完全自定义格式的行为时使用此构造函数。

要获得给定语言环境的标准格式,请使用NumberFormat上的工厂方法,例如getInstance或getCurrencyInstance。 如果只需对标准格式进行微调,则可以修改NumberFormat工厂方法返回的格式。

Parameters
pattern String: a non-localized pattern string
symbols DecimalFormatSymbols: the set of symbols to be used
Throws
IllegalArgumentException if the given pattern is invalid

也可以看看:

DecimalFormat

Added in API level 24
DecimalFormat (String pattern, 
                DecimalFormatSymbols symbols, 
                CurrencyPluralInfo infoInput, 
                int style)

根据给定的模式,符号,用于货币复数格式的信息和格式样式创建DecimalFormat。 当您需要完全自定义格式的行为时使用此构造函数。

要获得给定语言环境的标准格式,请使用NumberFormat上的工厂方法,例如getInstance或getCurrencyInstance。

如果只需对标准格式进行微调,则可以使用setters修改NumberFormat工厂方法返回的格式。

如果要完全自定义小数格式,请使用自己的DecimalFormatSymbols(例如组分隔符)和自己的货币复数格式信息(如复数规则和货币复数形式),则可以使用此构造函数。

Parameters
pattern String: a non-localized pattern string
symbols DecimalFormatSymbols: the set of symbols to be used
infoInput CurrencyPluralInfo: the information used for currency plural format, including currency plural patterns and plural rules.
style int: the decimal formatting style, it is one of the following values: NumberFormat.NUMBERSTYLE; NumberFormat.CURRENCYSTYLE; NumberFormat.PERCENTSTYLE; NumberFormat.SCIENTIFICSTYLE; NumberFormat.INTEGERSTYLE; NumberFormat.ISOCURRENCYSTYLE; NumberFormat.PLURALCURRENCYSTYLE;

Public methods

applyLocalizedPattern

Added in API level 24
void applyLocalizedPattern (String pattern)

将给定的模式应用于此Format对象。 该模式被假定为本地化的符号。 模式是各种格式属性的简短规范。 这些属性也可以通过各种设置方法单独更改。

此例程设置的整数位数没有限制,因为这是典型的最终用户需求; 如果要设置实际值,请使用setMaximumInteger。 对于负数,使用第二个模式,用分号分隔

示例“#,#00.0#” - > 1,234.56

这意味着最少2个整数数字,1个小数位,最多2个小数位。

例如:“#,#00.0#;(#,#00.0#)”表示底片中的底片。

在负模式中,最小和最大计数被忽略; 这些都被假定为正面模式。

Parameters
pattern String

applyPattern

Added in API level 24
void applyPattern (String pattern)

将给定的模式应用于此Format对象。 模式是各种格式属性的简短规范。 这些属性也可以通过各种设置方法单独更改。

此例程设置的整数位数没有限制,因为这是典型的最终用户需求; 如果要设置实际值,请使用setMaximumInteger。 对于负数,使用第二个模式,用分号分隔

示例“#,#00.0#” - > 1,234.56

这意味着最少2个整数数字,1个小数位,最多2个小数位。

例如:“#,#00.0#;(#,#00.0#)”用于括号中的负数。

在负模式中,最小和最大计数被忽略; 这些都被假定为正面模式。

Parameters
pattern String

areSignificantDigitsUsed

Added in API level 24
boolean areSignificantDigitsUsed ()

[icu]如果使用有效数字,则返回true;如果使用整数和小数位数,则返回false。

Returns
boolean true if significant digits are in use

clone

Added in API level 24
Object clone ()

覆盖克隆。

Returns
Object a clone of this instance.

equals

Added in API level 24
boolean equals (Object obj)

覆盖等于。

Parameters
obj Object: the object to compare against
Returns
boolean true if the object is equal to this.

format

Added in API level 24
StringBuffer format (BigInteger number, 
                StringBuffer result, 
                FieldPosition fieldPosition)

格式化一个BigInteger数字。

Parameters
number BigInteger
result StringBuffer
fieldPosition FieldPosition
Returns
StringBuffer

format

Added in API level 24
StringBuffer format (BigDecimal number, 
                StringBuffer result, 
                FieldPosition fieldPosition)

格式化BigDecimal号码。

Parameters
number BigDecimal
result StringBuffer
fieldPosition FieldPosition
Returns
StringBuffer

format

Added in API level 24
StringBuffer format (double number, 
                StringBuffer result, 
                FieldPosition fieldPosition)

格式专业化。

Parameters
number double
result StringBuffer
fieldPosition FieldPosition
Returns
StringBuffer

format

Added in API level 24
StringBuffer format (BigDecimal number, 
                StringBuffer result, 
                FieldPosition fieldPosition)

格式化BigDecimal号码。

Parameters
number BigDecimal
result StringBuffer
fieldPosition FieldPosition
Returns
StringBuffer

format

Added in API level 24
StringBuffer format (long number, 
                StringBuffer result, 
                FieldPosition fieldPosition)

格式专业化。

Parameters
number long
result StringBuffer
fieldPosition FieldPosition
Returns
StringBuffer

formatToCharacterIterator

Added in API level 24
AttributedCharacterIterator formatToCharacterIterator (Object obj)

将对象格式化为属性字符串,并返回相应的迭代器。

Parameters
obj Object: The object to format
Returns
AttributedCharacterIterator AttributedCharacterIterator describing the formatted value.

getCurrencyPluralInfo

Added in API level 24
CurrencyPluralInfo getCurrencyPluralInfo ()

[icu]返回此格式使用的CurrencyPluralInfo的副本。 如果十进制格式不是复数类型货币十进制格式,它可能会返回null。 复数型货币十进制格式表示小数格式中的模式包含3个货币符号,或者使用PLURALCURRENCYSTYLE初始化小数格式。

Returns
CurrencyPluralInfo desired CurrencyPluralInfo

也可以看看:

getCurrencyUsage

Added in API level 24
Currency.CurrencyUsage getCurrencyUsage ()

返回用于显示货币的 Currency Usage对象

Returns
Currency.CurrencyUsage

getDecimalFormatSymbols

Added in API level 24
DecimalFormatSymbols getDecimalFormatSymbols ()

返回此格式使用的小数格式符号的副本。

Returns
DecimalFormatSymbols desired DecimalFormatSymbols

也可以看看:

getFormatWidth

Added in API level 24
int getFormatWidth ()

返回填充format()的输出的宽度。 宽度以16位代码单位计算。

Returns
int the format width, or zero if no padding is in effect

也可以看看:

getGroupingSize

Added in API level 24
int getGroupingSize ()

返回分组大小。 分组大小是数字整数部分中分组分隔符之间的位数。 例如,在数字“123,456.78”中,分组大小为3。

Returns
int

也可以看看:

getMathContext

Added in API level 24
MathContext getMathContext ()

[icu]返回此格式使用的MathContext。

Returns
MathContext desired MathContext

也可以看看:

getMathContextICU

Added in API level 24
MathContext getMathContextICU ()

[icu]返回此格式使用的MathContext。

Returns
MathContext desired MathContext

也可以看看:

getMaximumSignificantDigits

Added in API level 24
int getMaximumSignificantDigits ()

[icu]返回将显示的最大有效位数。 除非areSignificantDigitsUsed()返回true,否则此值不起作用。

Returns
int the most significant digits that will be shown

getMinimumExponentDigits

Added in API level 24
byte getMinimumExponentDigits ()

[icu]返回将显示的最小指数位数。

Returns
byte the minimum exponent digits that will be shown

也可以看看:

getMinimumSignificantDigits

Added in API level 24
int getMinimumSignificantDigits ()

[icu]返回将显示的最小有效数字位数。 除非areSignificantDigitsUsed()返回true,否则此值不起作用。

Returns
int the fewest significant digits that will be shown

getMultiplier

Added in API level 24
int getMultiplier ()

返回用于百分比,百分比等的乘数。对于百分比,请将后缀设置为“%”,乘数为100.(对于阿拉伯语,请使用阿拉伯百分比符号)。 对于permill,将后缀设置为“±”,乘数为1000。

例如:100,1.23 - >“123”和“123” - > 1.23

Returns
int the multiplier

getNegativePrefix

Added in API level 24
String getNegativePrefix ()

返回负面的前缀。

示例:-123,($ 123)(带负号后缀),sFr-123

Returns
String the prefix

getNegativeSuffix

Added in API level 24
String getNegativeSuffix ()

返回负后缀。

示例:-123%,($ 123)(带有正后缀)

Returns
String the suffix

getPadCharacter

Added in API level 24
char getPadCharacter ()

[icu]返回用于填充格式宽度的字符。 默认值是''。

Returns
char the pad character

也可以看看:

getPadPosition

Added in API level 24
int getPadPosition ()

[icu]返回填充将发生的位置。 如果format()的结果比格式宽度短,这是填充插入的位置。

Returns
int the pad position, one of PAD_BEFORE_PREFIX, PAD_AFTER_PREFIX, PAD_BEFORE_SUFFIX, or PAD_AFTER_SUFFIX.

也可以看看:

getParseMaxDigits

Added in API level 24
int getParseMaxDigits ()

解析数字时获取当前最大数量的指数数字。

Returns
int the maximum number of exponent digits for parsing

getPositivePrefix

Added in API level 24
String getPositivePrefix ()

返回正前缀。

示例:+123,$ 123,sFr123

Returns
String the prefix

getPositiveSuffix

Added in API level 24
String getPositiveSuffix ()

返回正数后缀。

例如:123%

Returns
String the suffix

getRoundingIncrement

Added in API level 24
BigDecimal getRoundingIncrement ()

[icu]返回舍入增量。

Returns
BigDecimal A positive rounding increment, or null if a custom rounding increment is not in effect.

也可以看看:

getRoundingMode

Added in API level 24
int getRoundingMode ()

返回舍入模式。

Returns
int A rounding mode, between BigDecimal.ROUND_UP and BigDecimal.ROUND_UNNECESSARY.

也可以看看:

getSecondaryGroupingSize

Added in API level 24
int getSecondaryGroupingSize ()

[icu]返回辅助分组大小。 在某些语言环境中,一个分组间隔用于最小有效整数位数(主分组大小),另一个用于所有其他分组大小(次分组大小)。 支持辅助分组大小的格式化程序将返回一个不等于getGroupingSize()返回的主分组大小的正整数。 例如,如果主要分组大小为4,次要分组大小为2,则数字123456789格式为“1,23,45,6789”,并且该模式显示为“#,##,### 0 ”。

Returns
int the secondary grouping size, or a value less than one if there is none

也可以看看:

hashCode

Added in API level 24
int hashCode ()

重写hashCode。

Returns
int a hash code value for this object.

isDecimalPatternMatchRequired

Added in API level 24
boolean isDecimalPatternMatchRequired ()

[icu]如果模式中有小数点标记,则返回解析输入是否必须包含小数点标记。

Returns
boolean true if input must contain a match to decimal mark in pattern

isDecimalSeparatorAlwaysShown

Added in API level 24
boolean isDecimalSeparatorAlwaysShown ()

用整数返回小数点分隔符的行为。 (小数点分隔符总是以小数显示。)

例如:小数ON:12345 - > 12345。 OFF:12345 - > 12345

Returns
boolean

isExponentSignAlwaysShown

Added in API level 24
boolean isExponentSignAlwaysShown ()

[icu]返回是否始终显示指数符号。

Returns
boolean true if the exponent is always prefixed with either the localized minus sign or the localized plus sign, false if only negative exponents are prefixed with the localized minus sign.

也可以看看:

isParseBigDecimal

Added in API level 24
boolean isParseBigDecimal ()

返回 parse(String, ParsePosition)是否返回BigDecimal。

Returns
boolean true if parse(String, ParsePosition) returns BigDecimal.

isScientificNotation

Added in API level 24
boolean isScientificNotation ()

[icu]返回是否使用科学记数法。

Returns
boolean true if this object formats and parses scientific notation

也可以看看:

parse

Added in API level 24
Number parse (String text, 
                ParsePosition parsePosition)

解析给定的字符串,返回一个Number对象来表示解析的值。 Double将返回对象以表示不能存储在BigDecimal非整数值。 这些是NaN ,无限,-infinity和-0.0。 如果isParseBigDecimal()为false(默认值),所有其他值都返回为LongBigInteger ,或BigDecimal值,在优先顺序。 如果isParseBigDecimal()为真,则所有其他值将返回为BigDecimal 如果解析失败,则返回null。

Parameters
text String: the string to be parsed
parsePosition ParsePosition: defines the position where parsing is to begin, and upon return, the position where parsing left off. If the position has not changed upon return, then parsing failed.
Returns
Number a Number object with the parsed value or null if the parse failed

parseCurrency

Added in API level 24
CurrencyAmount parseCurrency (CharSequence text, 
                ParsePosition pos)

将给定字符串中的文本解析为CurrencyAmount。 与parse()方法不同,此方法将尝试解析通用货币名称,搜索此对象的区域设置的货币显示名称的匹配项或3个字母的ISO货币代码。 如果此格式不是货币格式,即它的前缀或后缀中不包含货币格式符号(U + 00A4),则此方法将失败。

Parameters
text CharSequence: the text to parse
pos ParsePosition: input-output position; on input, the position within text to match; must have 0 <= pos.getIndex() < text.length(); on output, the position after the last matched character. If the parse fails, the position in unchanged upon output.
Returns
CurrencyAmount a CurrencyAmount, or null upon failure

setCurrency

Added in API level 24
void setCurrency (Currency theCurrency)

设置用于显示货币金额的Currency对象。 如果这种格式是货币格式,这将立即生效。 如果此格式不是货币格式,则在通过应用新模式将此对象变为货币格式时使用货币对象。

Parameters
theCurrency Currency: new currency object to use. Must not be null.

setCurrencyPluralInfo

Added in API level 24
void setCurrencyPluralInfo (CurrencyPluralInfo newInfo)

[icu]设置此格式使用的CurrencyPluralInfo。 该格式使用提供的信息的副本。

Parameters
newInfo CurrencyPluralInfo: desired CurrencyPluralInfo

也可以看看:

setCurrencyUsage

Added in API level 24
void setCurrencyUsage (Currency.CurrencyUsage newUsage)

设置用于显示货币的Currency Usage对象。 如果这种格式是货币格式,这将立即生效。

Parameters
newUsage Currency.CurrencyUsage: new currency context object to use.

setDecimalFormatSymbols

Added in API level 24
void setDecimalFormatSymbols (DecimalFormatSymbols newSymbols)

设置此格式使用的小数格式符号。 格式使用提供的符号的副本。

Parameters
newSymbols DecimalFormatSymbols: desired DecimalFormatSymbols

也可以看看:

setDecimalPatternMatchRequired

Added in API level 24
void setDecimalPatternMatchRequired (boolean value)

当不需要进行小数点匹配时,如果在模式中指定了小数点,则输入不必包含小数点标记。

Parameters
value boolean: true if input must contain a match to decimal mark in pattern Default is false.

setDecimalSeparatorAlwaysShown

Added in API level 24
void setDecimalSeparatorAlwaysShown (boolean newValue)

用整数设置小数点分隔符的行为。 (小数点分隔符总是以小数显示。)

这只影响格式化,并且只在小数点后面没有数字的位置出现,例如,如果为true,3456.00 - >“3,456”。 如果为false,3456.00 - >“3456”这与解析无关。 如果要解析为在小数点停止,请使用setParseIntegerOnly。

例如:小数ON:12345 - > 12345。 OFF:12345 - > 12345

Parameters
newValue boolean

setExponentSignAlwaysShown

Added in API level 24
void setExponentSignAlwaysShown (boolean expSignAlways)

[icu]设置是否始终显示指数符号。 除非使用科学记数法,否则这不起作用。

Parameters
expSignAlways boolean: true if the exponent is always prefixed with either the localized minus sign or the localized plus sign, false if only negative exponents are prefixed with the localized minus sign.

也可以看看:

setFormatWidth

Added in API level 24
void setFormatWidth (int width)

设置填充format()的输出的宽度。 宽度以16位代码单位计算。 此方法还控制是否启用填充。

Parameters
width int: the width to which to pad the result of format(), or zero to disable padding
Throws
IllegalArgumentException if width is < 0

也可以看看:

setGroupingSize

Added in API level 24
void setGroupingSize (int newValue)

设置分组大小。 分组大小是数字整数部分中分组分隔符之间的位数。 例如,在数字“123,456.78”中,分组大小为3。

Parameters
newValue int

也可以看看:

setMathContext

Added in API level 24
void setMathContext (MathContext newValue)

[icu]设置此格式使用的MathContext。

Parameters
newValue MathContext: desired MathContext

也可以看看:

setMathContextICU

Added in API level 24
void setMathContextICU (MathContext newValue)

[icu]设置此格式使用的MathContext。

Parameters
newValue MathContext: desired MathContext

也可以看看:

setMaximumFractionDigits

Added in API level 24
void setMaximumFractionDigits (int newValue)

设置数字的小数部分允许的最大位数。 该覆盖将分数位数限制为340。

Parameters
newValue int: the maximum number of fraction digits to be shown; if less than zero, then zero is used. The concrete subclass may enforce an upper limit to this value appropriate to the numeric type being formatted.

也可以看看:

setMaximumIntegerDigits

Added in API level 24
void setMaximumIntegerDigits (int newValue)

设置数字整数部分允许的最大位数。 该覆盖将整数数字计数限制为2,000,000,000以匹配ICU4C。

Parameters
newValue int: the maximum number of integer digits to be shown; if less than zero, then zero is used. Subclasses might enforce an upper limit to this value appropriate to the numeric type being formatted.

也可以看看:

setMaximumSignificantDigits

Added in API level 24
void setMaximumSignificantDigits (int max)

[icu]设置将显示的最大有效位数。 如果max小于1,则设置为1。 如果最低有效位数大于max ,则它被设置为max 此功能还可以使用此格式化程序使用有效数字 - areSignificantDigitsUsed()将返回true。

Parameters
max int: the most significant digits to be shown

setMinimumExponentDigits

Added in API level 24
void setMinimumExponentDigits (byte minExpDig)

[icu]设置将显示的最小指数位数。 除非使用科学记数法,否则这不起作用。

Parameters
minExpDig byte: a value >= 1 indicating the fewest exponent digits that will be shown
Throws
IllegalArgumentException if minExpDig < 1

也可以看看:

setMinimumFractionDigits

Added in API level 24
void setMinimumFractionDigits (int newValue)

设置数字的小数部分中允许的最小位数。 该覆盖将分数位数限制为340。

Parameters
newValue int: the minimum number of fraction digits to be shown; if less than zero, then zero is used. Subclasses might enforce an upper limit to this value appropriate to the numeric type being formatted.

也可以看看:

setMinimumIntegerDigits

Added in API level 24
void setMinimumIntegerDigits (int newValue)

设置数字整数部分允许的最小位数。 该覆盖将整数位数限制为309。

Parameters
newValue int: the minimum number of integer digits to be shown; if less than zero, then zero is used. Subclasses might enforce an upper limit to this value appropriate to the numeric type being formatted.

也可以看看:

setMinimumSignificantDigits

Added in API level 24
void setMinimumSignificantDigits (int min)

[icu]设置将显示的最小有效位数。 如果min小于1,那么它被设置为1。 如果最大有效位数小于min ,则它设置为min 此功能还可以使用此格式化程序使用有效数字 - areSignificantDigitsUsed()将返回true。

Parameters
min int: the fewest significant digits to be shown

setMultiplier

Added in API level 24
void setMultiplier (int newValue)

设置用于百分比,百分比等的乘数。对于百分比,请将后缀设置为“%”,乘数为100.(对于阿拉伯语,请使用阿拉伯百分比符号)。 对于permill,将后缀设置为“±”,乘数为1000。

例如:100,1.23 - >“123”和“123” - > 1.23

Parameters
newValue int: the multiplier

setNegativePrefix

Added in API level 24
void setNegativePrefix (String newValue)

设置否定前缀。

示例:-123,($ 123)(带负号后缀),sFr-123

Parameters
newValue String: the prefix

setNegativeSuffix

Added in API level 24
void setNegativeSuffix (String newValue)

设置正后缀。

例子:123%

Parameters
newValue String: the suffix

setPadCharacter

Added in API level 24
void setPadCharacter (char padChar)

[icu]将用于填充的字符设置为格式宽度。 如果未启用填充,则稍后启用填充时这将生效。

Parameters
padChar char: the pad character

也可以看看:

setPadPosition

Added in API level 24
void setPadPosition (int padPos)

[icu]设置填充将发生的位置。 如果format()的结果比格式宽度短,这是填充插入的位置。 除非启用填充,否则这不起作用。

Parameters
padPos int: the pad position, one of PAD_BEFORE_PREFIX, PAD_AFTER_PREFIX, PAD_BEFORE_SUFFIX, or PAD_AFTER_SUFFIX.
Throws
IllegalArgumentException if the pad position in unrecognized

也可以看看:

setParseBigDecimal

Added in API level 24
void setParseBigDecimal (boolean value)

设置parse(String, ParsePosition)是否返回BigDecimal。 默认值是false。

Parameters
value boolean: true if parse(String, ParsePosition) returns BigDecimal.

setParseMaxDigits

Added in API level 24
void setParseMaxDigits (int newValue)

分析数字时设置最大指数位数。 如果限制设置得太高,则可能会触发OutOfMemoryException。 缺省值是1000。

Parameters
newValue int: the new limit

setPositivePrefix

Added in API level 24
void setPositivePrefix (String newValue)

设置正面前缀。

示例:+123,$ 123,sFr123

Parameters
newValue String: the prefix

setPositiveSuffix

Added in API level 24
void setPositiveSuffix (String newValue)

设置正后缀。

例如:123%

Parameters
newValue String: the suffix

setRoundingIncrement

Added in API level 24
void setRoundingIncrement (BigDecimal newValue)

[icu]设置舍入增量。 在没有舍入增量的情况下,数字将被舍入为显示的位数。

Parameters
newValue BigDecimal: A positive rounding increment, or null or BigDecimal(0.0) to use the default rounding increment.
Throws
IllegalArgumentException if newValue is < 0.0

也可以看看:

setRoundingIncrement

Added in API level 24
void setRoundingIncrement (BigDecimal newValue)

[icu]设置舍入增量。 在没有舍入增量的情况下,数字将被舍入为显示的位数。

Parameters
newValue BigDecimal: A positive rounding increment, or null or BigDecimal(0.0) to use the default rounding increment.
Throws
IllegalArgumentException if newValue is < 0.0

也可以看看:

setRoundingIncrement

Added in API level 24
void setRoundingIncrement (double newValue)

[icu]设置舍入增量。 在没有舍入增量的情况下,数字将被舍入为显示的位数。

Parameters
newValue double: A positive rounding increment, or 0.0 to use the default rounding increment.
Throws
IllegalArgumentException if newValue is < 0.0

也可以看看:

setRoundingMode

Added in API level 24
void setRoundingMode (int roundingMode)

设置舍入模式。 除非舍入增量大于零,否则这不起作用。

Parameters
roundingMode int: A rounding mode, between BigDecimal.ROUND_UP and BigDecimal.ROUND_UNNECESSARY.
Throws
IllegalArgumentException if roundingMode is unrecognized.

也可以看看:

setScientificNotation

Added in API level 24
void setScientificNotation (boolean useScientific)

[icu]设置是否使用科学记数法。 当使用科学记数法时,有效的最大整数位数是<= 8.如果最大整数位数设置为大于8,则有效最大值将为1.这允许此调用生成“默认”科学数字格式,无需其他更改。

Parameters
useScientific boolean: true if this object formats and parses scientific notation

也可以看看:

setSecondaryGroupingSize

Added in API level 24
void setSecondaryGroupingSize (int newValue)

[icu]设置次要分组大小。 如果设置为小于1的值,则关闭次要分组,并且主要分组大小用于所有间隔,而不仅仅是最低有效。

Parameters
newValue int

也可以看看:

setSignificantDigitsUsed

Added in API level 24
void setSignificantDigitsUsed (boolean useSignificantDigits)

[icu]设置是否使用有效数字,或者使用整数和小数位数。

Parameters
useSignificantDigits boolean: true to use significant digits, or false to use integer and fraction digit counts

toLocalizedPattern

Added in API level 24
String toLocalizedPattern ()

合成表示此Format对象当前状态的本地化模式字符串。

Returns
String

也可以看看:

toPattern

Added in API level 24
String toPattern ()

合成表示此Format对象当前状态的模式字符串。

Returns
String

也可以看看:

Hooray!