扩展阅读
  • java命名空间java.lang.management类managementfactory的类成员方法: getoperatingsystemmxbean定义及介绍
  • java.util.Date 和 java.slq.Date 如何最简单实现互换?
  • java命名空间java.lang.management接口memorypoolmxbean的类成员方法: isvalid定义及介绍
  • 轻量级Java开发工具 Java Tools
  • java命名空间java.lang.management接口threadmxbean的类成员方法: isthreadcputimesupported定义及介绍
  • 在下初学java,请各位大虾推荐几个java学习网站吧!
  • java命名空间java.lang.management接口memorymanagermxbean的类成员方法: isvalid定义及介绍
  • 各位大虾,为什么我的java程序能通过编译,但是在用java命令运行程序的时候却老是报错“Exception in thread "main" java.lang.NoClassDe
  • java命名空间java.awt.image接口imageobserver的类成员方法: properties定义及介绍
  • 请问:java 入门以及学好Java要看哪些书籍阿????
  • java命名空间java.sql类types的类成员方法: other定义及介绍
  • Java源码工具 java2html
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • java bean和java class的区别??
  • java命名空间java.awt类color的类成员方法: gettransparency定义及介绍
  • 学习JAVA,请推荐好的 JAVA站点!
  • java命名空间java.lang.management类memoryusage的类成员方法: getcommitted定义及介绍
  • 关于Java好的网站,哪个Java好的教程。
  • java命名空间java.text类decimalformat的类成员方法: setparsebigdecimal定义及介绍
  • 如何将java.util.Date转化成java.sql.Date?
  • java命名空间java.awt类toolkit的类成员方法: createcomponent定义及介绍
  • 如何设置java应用程序的风格,如java风格,和windows风格!
  •  
    当前位置:  编程语言>java/jsp

    java命名空间java.util类formatter的类成员方法: 详细信息 定义及介绍

     
        发布时间:2014-2-17  


        本文导语:  详细信息 这一部分将提供格式化行为规范方面的细节,其中包括条件和异常、受支持的数据类型、本地化以及标志、转换和数据类型之间的交互。有关格式化概念的概述,请参阅摘要。 任何未明确定义为转换、日期/时间转...

    详细信息

    这一部分将提供格式化行为规范方面的细节,其中包括条件和异常、受支持的数据类型、本地化以及标志、转换和数据类型之间的交互。有关格式化概念的概述,请参阅摘要

    任何未明确定义为转换、日期/时间转换前缀或标志的字符都是非法字符,并且这些字符都被保留,以供未来扩展使用。在格式字符串中使用这样的字符会导致抛出 unknownformatconversionexceptionunknownformatflagsexception

    如果格式说明符包含带有无效值或不受支持的其他值的操作系统 iis7站长之家精度,则将分别抛出 illegalformatwidthexceptionillegalformatprecisionexception

    如果格式说明符包含不适用于对应参数的转换字符,则将抛出 illegalformatconversionexception

    所有指定异常都可能被 formatter 的任何 format 方法以及任何 format 的便捷方法抛出,比如 string#format(string,object...)string.formatjava.io.printstream#printf(string,object...)printstream.printf。 string.format} and printstream.printf.

    大写字符(如 'b''h''s''c''x''e''g''a''t')表示的转换与那些相应的小写字符表示的转换相同,根据流行的 locale 规则将结果转换成大写形式除外。结果等同于 string.touppercase() 的以下调用

        out.touppercase() 

    常规

    以下常规转换可应用于任何参数类型:

    以下 标志 应用于常规转换:

    宽度 是将向输出中写入的最少字符数。如果转换值的长度小于宽度,则用 '  ' (u0020') 填充输出,直到字符总数等于宽度为止。默认情况下,是在左边进行填充。如果给出 '-' 标志,则在右边进行填充。如果没有指定宽度,则没有最小宽度。

    精度是将向输出中写入的最多字符数。精度的应用要先于宽度,因此,即使宽度大于精度,输出也将被截取为 precision 字符。如果没有指定精度,则对字符数没有明确限制

    字符

    此转换可应用于 charcharacter。它还可应用于类型 bytebyteshortshortintinteger。当 character.isvalidcodepoint(int) 返回 true 时,此转换也可应用于 intinteger。如果返回 false,则将抛出 illegalformatcodepointexception

    '-' 标志是为应用常规转换而定义的。如果给出 '#' 标志,则将抛出 formatflagsconversionmismatchexception

    宽度是为了实现常规转换而定义的。

    精度不适用。如果指定精度,则将抛出 illegalformatprecisionexception

    数值

    数值转换分为以下几类:

    1. byte、short、integer 和 long
    2. biginteger
    3. floatdouble
    4. bigdecimal

    将根据以下算法对数值类型进行格式化:

    数字本地化算法

    在获得数字的整数部分、小数部分和指数(适用于数据类型)之后,将应用以下转换:

    1. 将字符串中的每个数字字符 d 都替换为特定于语言环境的数字,该数字是相对于当前语言环境的零数字 z 来计算的;即 d -  '0'  + z
    2. 如果存在小数点分隔符,则用特定于语言环境的小数点分隔符替换。
    3. 如果给出 ',' ('u002c') flag 标志,则插入特定于语言环境的组分隔符,这是通过从最低位到最高位浏览字符串的整数部分并不时插入该语言环境组大小定义的分隔符来实现的。
    4. 如果给出 '0' 标志,则在符号字符(如果有的话)之后、第一个非零数字插入特定于语言环境的零数字,直到字符串长度等于所要求的字段宽度
    5. 如果该值为负,并且给出了 '(' 标志,那么预先考虑 '(' ('u0028'),并追加一个 ')' ('u0029')。
    6. 如果该值为负(或者为浮点负零),并且没有给出 '(' 标志,那么预先考虑 '-' ('u002d')。
    7. 如果给出 '+' 标志,并且该值为正或零(或者为浮点正零),那么将预先考虑 '+' ('u002b')。

    如果该值为 nan 或正无穷大,则分别输出文本字符串 "nan" 或 "infinity"。如果该值为负无穷大,那么输出将是 "(infinity)";否则如果给出 '(' 标志,那么输出将是 "-infinity"。这些值都没有被本地化。

    byte、short、integer 和 long

    以下转换可应用于 bytebyteshortshortintintegerlonglong

    如果该转换是 'o''x''x' 转换,并且给出了 '#''0' 标志,那么结果将包含基数指示符(对于八进制'0',对于十六进制是 '0'"0x")、一定数量的零(基于宽度)和该值。

    如果没有给出 '-' 标志,则在符号前填充空格

    以下 标志 应用于数值整数转换:

    如果没有给出 标志 ,则默认格式设置如下:

    • width 中的输出是右对齐的
    • 负数以 '-' ('u002d') 开始
    • 正数和零不包括符号或额外的前导空格
    • 不包括组分隔符

    the 宽度 是将向输出中写入的最少字符数。这包括所有符号、数字、组分隔符、基数指示符和圆括号。如果转换值的长度小于宽度,则用空格('u0020') 填充输出,直到字符总数等于宽度。默认情况下,在左边进行填补。如果给出 '-' 标志,则在右边进行填补。如果没有指定宽度,则没有最小宽度。

    精度不适用。如果指定精度,则将抛出 illegalformatprecisionexception

    biginteger

    以下转换可应用于 biginteger

    如果该转换是 'o''x''x',并且给出了 '#''0' 标志,那么结果将包含基数指示符(对于八进制是 '0',对于十六进制是 '0'"0x")、一定数量的零(基于宽度)和该值。

    如果给出 '0' 标志,并且值为负,则在符号后填充零。

    如果没有给出 '-' 标志,则在符号前填充空格。

    应用为 byte、short、integer 和 long 定义的所有标志。没有给出标志时的默认行为与 byte、short、integer 和 long 的行为相同。

    宽度的规范与为 byte、short、integer 和 long 定义的规范相同。

    精度不适用。如果指定精度,则将抛出 illegalformatprecisionexception

    float 和 double

    以下转换可应用于 floatfloatdoubledouble

    应用为 byte、short、integer 和 long 定义的所有标志。

    如果给出 '#' 标志,则将始终存在小数点分隔符。

    如果没有给出 标志 则默认格式设置如下:

    • width 中的输出是右对齐的。
    • 负数以 '-' 开头
    • 正数和正零不包括符号或额外的前导空格
    • 不包括组分隔符
    • 小数点分隔符只在后面有数字时才出现

    the 宽度 是将向输出中写入的最少字符数。这包括可应用的所有符号、数字、组分隔符、小数点分隔符、指数符号、基数指示符、圆括号和表示无穷大和 nan 的字符串。如果转换值的长度小于宽度,则用空格('u0020') 填充输出,直到字符总数等于宽度。默认情况下,在左边进行填充。如果给出 '-' 标志,则在右边进行填充。如果没有指定宽度,则没有最小宽度。

    如果 转换 是 'e''e''f',则精度是小数点分隔符后的位数。如果没有指定精度,则假定精度为 6

    如果转换是 'g''g' 转换,那么精度就是舍入运算后所得数值的总有效位数。如果没有指定精度,则默认值为 6。如果精度为 0,则该值将为 1

    如果转换是 'a''a' 转换,则精度是小数点分隔符后十六进制数字的位数。如果没有提供精度,则将输出 double.tohexstring(double) 返回的所有数字。

    bigdecimal

    以下转换可应用于 bigdecimal

    应用为 byte、short、integer 和 long 定义的所有标志。

    如果给出 '#' 标志,则将始终存在小数点分隔符。

    没有给出标志时的默认行为与 float 和 double 的行为相同。

    宽度和精度的规范与为 float 和 double 定义的规范相同。

    日期/时间

    此转换可应用于 longlongcalendardate

    以下日期和时间转换字符后缀是为 't''t' 转换定义的。这些类型类似于但不完全等同于 gnu dateposix strftime(3c) 定义的那些类型。提供其他转换类型是为了访问特定于 java 的功能(例如,'l' 用于秒中的毫秒)。

    以下转换字符用来格式化时间:

    以下转换字符用来格式化日期:

    以下转换字符用于格式化常见的日期/时间组合

    应用为常规转换而定义的 '-' 标志。如果给出 '#' 标志,则将抛出 formatflagsconversionmismatchexception

    宽度 是将向输出中写入的最少字符数。如果转换值的长度小于 width,则用空格('u0020') 来填充输出,直到总字符数等于宽度。默认情况下,在左边进行填充。如果给出 '-' 标志,则在右边进行填充。如果没有指定宽度,则没有最小宽度。

    精度不适用。如果指定了精度,则将抛出 illegalformatprecisionexception

    百分比

    该转换不对应于任何参数。

    行分隔符

    该转换不对应于任何参数。

    标志、宽度和精度都不可用。如果提供这三者,则会分别抛出 illegalformatflagsexceptionillegalformatwidthexceptionillegalformatprecisionexception

    参数索引

    格式说明符可以通过三种方式引用参数:

    • 显式索引 是在格式说明符中包含参数索引时使用。参数索引是一个十进制整数,用于指示参数在参数列表中的位置。第一个参数由 "1$" 引用,第二个参数由 "2$" 引用,依此类推。可以多次引用任何一个参数。

      例如:

         formatter.format("%4$s %3$s %2$s %1$s %4$s %3$s %2$s %1$s",
                          "a", "b", "c", "d")
         // -> "d c b a d c b a"
       
    • 相对索引 是在格式说明符中包含 '<' ('u003c') 标志时使用,该标志将导致重用以前格式说明符的参数。如果不存在以前的参数,则抛出 missingformatargumentexception
          formatter.format("%s %s % "b a a b"
          // "c" and "d" are ignored because they are not referenced
       
    • 普通索引 在格式说明符中既不包含参数索引也不包含 '<' 标志时使用。每个使用普通索引的格式说明符都分配了一个连续隐式索引,分配在独立于显式索引或相对索引使用的参数列表中。
         formatter.format("%s %s %s %s", "a", "b", "c", "d")
         // -> "a b c d"
       

    可能有一个使用所有索引形式的格式字符串,例如:

       formatter.format("%2$s %s % "b a a b"
       // "c" and "d" are ignored because they are not referenced
     

    参数的最大数量受到 java machine specification 定义的 java 数组 的最大维数的限制。如果参数索引与可用参数不对应,则抛出 missingformatargumentexception

    如果参数多于格式说明符,则忽略额外的参数。

    除非另行指定,否则向此类中的任何方法或构造方法传递 null 参数都将抛出 nullpointerexception

    从以下版本开始:
    1.5
    相关文章推荐:
  • java命名空间java.text接口attributedcharacteriterator的类成员方法: getattribute定义及介绍
  • java文件重命名(文件批量重命名)实例程序代码分享
  • java命名空间java.beans接口propertyeditor的类成员方法: getvalue定义及介绍
  • java 命名空间 命名规则第1/2页
  • java命名空间java.awt类container的类成员方法: getlayout定义及介绍
  • Linux 下 java 的File类的renameTo()方法 不能重命名文件
  • java命名空间java.beans类defaultpersistencedelegate的类成员方法: defaultpersistencedelegate定义及介绍
  • Java命名规则详细总结
  • java命名空间java.text类decimalformat的类成员方法: topattern定义及介绍
  • Java Web项目前端规范(采用命名空间使js深度解耦合)
  • java命名空间java.sql类types的类成员方法: null定义及介绍
  • java的命名规则默认是不是匈牙利命名法?
  • java命名空间java.awt类awtevent的类成员方法: id定义及介绍
  • java开发命名规范总结
  • java命名空间java.text类choiceformat的类成员方法: choiceformat定义及介绍
  • Java实现文件批量重命名具体实例
  • java命名空间java.sql类driverpropertyinfo的类成员方法: value定义及介绍
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: isrepresentationclassinputstream定义及介绍
  • java命名空间java.text类decimalformat的类成员方法: tolocalizedpattern定义及介绍
  • java命名空间java.sql类types的类成员方法: binary定义及介绍
  • java命名空间java.sql类types的类成员方法: float定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3