Java中Stringformat的用法.pdf
《Java中Stringformat的用法.pdf》由会员分享,可在线阅读,更多相关《Java中Stringformat的用法.pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、JavaJava 中中 String.formatString.format 的用法的用法JDK1.5中, String 类新增了一个很有用的静态方法 String.format(), 接下来作者将详细的分析 String.format 在 Java 中的用法。JDK1.5中,String 类新增了一个很有用的静态方法 String.format():format(Locale l, String format, Object. args) 使用指定的语言环境、格式字符串和参数返回一个格式化字符串。format(String format, Object. args) 使用指定的格式字符串和参
2、数返回一个格式化字符串。1.对整数进行格式化:%index$标识最小宽度转换方式。我们可以看到,格式化字符串由4部分组成,其中%index$的含义我们上面已经讲过,最小宽度的含义也很好理解, 就是最终该整数转化的字符串最少包含多少位数字。 我们来看看剩下2个部分的含义吧:标标识:识:- 在最小宽度内左对齐,不可以与“用0填充”同时使用# 只适用于8进制和16进制,8进制时在结果前面增加一个0,16进制时在结果前面增加0 x+ 结果总是包括一个符号(一般情况下只适用于10进制,若对象为 BigInteger 才可以用于8进制和16进制) 正值前加空格,负值前加负号(一般情况下只适用于10进制,若
3、对象为 BigInteger才可以用于8进制和16进制)0 结果将用零来填充, 只适用于10进制,每3位数字之间用“,”分隔( 若参数是负数,则结果中不添加负号而是用圆括号把数字括起来(同+具有同样的限制)转换方式:转换方式:d-十进制 o-八进制 x 或 X-十六进制上面的说明过于枯燥,我们来看几个具体的例子。需要特别注意的一点是:大部分标识字符可以同时使用。System.out.println(String.format(%1$,09d, -3123);System.out.println(String.format(%1$9d, -31);System.out.println(Strin
4、g.format(%1$-9d, -31);System.out.println(String.format(%1$(9d, -31);System.out.println(String.format(%1$#9x, 5689);/结果为:/-0003,123/-31/-31/(31)/0 x16392.2.对浮点数进行格式化:对浮点数进行格式化:%index$%index$标识标识最少宽度最少宽度.精度精度 转换方式转换方式我们可以看到,浮点数的转换多了一个“精度”选项,可以控制小数点后面的位数。标识:- 在最小宽度内左对齐,不可以与“用0填充”同时使用+ 结果总是包括一个符号 正值前加空格
5、,负值前加负号0 结果将用零来填充, 每3位数字之间用“,”分隔(只适用于 fgG 的转换)( 若参数是负数,则结果中不添加负号而是用圆括号把数字括起来(只适用于 eEfgG的转换)转换方式:e, E - 结果被格式化为用计算机科学记数法表示的十进制数f - 结果被格式化为十进制普通表示方式g, G - 根据具体情况,自动选择用普通表示方式还是科学计数法方式a, A - 结果被格式化为带有效位数和指数的十六进制浮点数3.3.对字符进行格式化:对字符进行格式化:对字符进行格式化是非常简单的,c 表示字符,标识中-表示左对齐,其他就没什么了。4.4.对百分比符号进行格式化:对百分比符号进行格式化:
6、看了上面的说明,大家会发现百分比符号“%”是特殊格式的一个前缀。那么我们要输入一个百分比符号该怎么办呢?肯定是需要转义字符的,但是要注意的是,在这里转义字符不是“”,而是“%”。换句话说,下面这条语句可以输出一个“12%”:System.out.println(String.format(%1$d%, 12);5.5.取得平台独立的行分隔符:取得平台独立的行分隔符:System.getProperty(line.separator)可以取得平台独立的行分隔符,但是用在format 中间未免显得过于烦琐了。于是 format 函数自带了一个平台独立的行分隔符那就是String.format(%n
7、)。6.6.对日期类型进行格式化:对日期类型进行格式化:以下日期和时间转换的后缀字符是为 t 和 T 转换定义的。 这些类型相似于但不完全等同于那些由 GNU date 和 POSIX strftime(3c) 定义的类型。提供其他转换类型是为了访问特定于 Java 的功能(如将 L 用作秒中的毫秒) 。举几个这个方法实用的例子(注释是输出结果):CODE:CODE:long now = System.currentTimeMillis();String s = String.format(%tR, now);/ 15:12CODE:CODE:/ Current month/day/yearD
8、ate d = new Date(now);s = String.format(%tD, d);/ 07/13/04CODE:CODE:s = String.format(%,d, Integer.MAX_VALUE); / 2,147,483,647CODE:CODE:s = String.format(%05d, 123);/ 00123是不是很方便,让人动心啊?哈哈,还有更多的效果!其实 format 函数有些类似 c 语言中 printf 函数,一些格式字符串与 C 类似,但已进行了某些定制,以适应 Java 语言,并且利用了其中一些特性。此方法提供了对布局对齐和排列的支持,以及对数值
9、、字符串和日期/时间数据的常规格式和特定于语言环境的输出的支持。支持诸如 byte、BigDecimal 和 Calendar 等常见 Java 类型。产生格式化输出的每个方法都需要格式字符串 和参数列表。格式字符串是一个String,它可以包含固定文本以及一个或多个嵌入的格式说明符。请考虑以下示例:Calendar c = .;String s = String.format(Dukes Birthday: %1$tm %1$te,%1$tY, c);格式字符串是 format 方法的第一个参数。它包含三个格式说明符 %1$tm、%1$te和%1$tY,它们指出应该如何处理参数以及在文本的什
10、么地方插入它们。格式字符串的其余部分是包括 Dukes Birthday: 和其他任何空格或标点符号的固定文本。 参数列表由传递给位于格式字符串之后的方法的所有参数组成。在上述示例中,参数列表的大小为 1,由新对象 Calendar 组成。1.1.常规类型、字符类型和数值类型的格式说明符的语法如下:常规类型、字符类型和数值类型的格式说明符的语法如下:%argument_index$flagswidth.precisionconversion可选的 argument_index 是一个十进制整数, 用于表明参数在参数列表中的位置。 第一个参数由 1$ 引用,第二个参数由 2$ 引用,依此类推。可
11、选的 flags 是修改输出格式的字符集。有效标志的集合取决于转换类型。可选 width 是一个非负十进制整数,表明要向输出中写入的最少字符数。可选 precision 是一个非负十进制整数,通常用来限制字符数。特定行为取决于转换类型。所需的 conversion 是一个表明应该如何格式化参数的字符。 给定参数的有效转换集合取决于参数的数据类型。2.2.用来表示日期和时间类型的格式说明符的语法如下:用来表示日期和时间类型的格式说明符的语法如下:%argument_index$flagswidthconversion可选的 argument_index、flags 和 width 的定义同上。所
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java Stringformat 用法
限制150内