常规类型的格式化

String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言的读者应该记得C语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。

l     format(String format, Object... args)

该方法使用指定的字符串格式和参数生成格式化的新字符串。 新字符串始终使用本地语言环境。例如当前日期信息在中国语言环境中的表现形式为“2007-10-27”,但是在其他国家有不同的表现形式。

语法:

String.format(format,args...)

format:字符串格式。

args...:字符串格式中由格式说明符引用的参数。如果还有格式说明符以外的参数,则忽略这些额外的参数。参数的数目是可变的,可以为0。

l     format(Locale locale, String format, Object... args)

该方法使用指定的语言环境、字符串格式和参数生成一个格式化的新字符串。新字符串始终使用指定的语言环境。

语法:

String.format(locale,format,args...)

locale:指定的语言环境。

format:字符串格式。

args...:字符串格式中由格式说明符引用的参数。如果还有格式说明符以外的参数,则忽略这些额外的参数。参数的数目是可变的,可以为0。

format()方法中的字符串格式参数有很多种转换符选项,例如:日期、整数、浮点数等。这些转换符的说明如表7.1所示。

表7.1                                  转换符

转  换  符

说    明

示    例

%s

字符串类型

"mingrisoft"

%c

字符类型

'm'

%b

布尔类型

true

%d

整数类型(十进制)

99

%x

整数类型(十六进制)

FF

%o

整数类型(八进制)

77

%f

浮点类型

99.99

%a

十六进制浮点类型

FF.35AE

%e

指数类型

9.38e+5

%g

通用浮点类型(f和e类型中较短的)

 

%h

散列码

 

%%

百分比类型

%n

换行符

 

%tx

日期与时间类型(x代表不同的日期与时间转换符

 

ch0705实例位置:mr/07/sl/05

下面的实例使用了表7.1中的各种转换符实现不同数据类型到字符串的转换,并将转换后的字符串通过System.out.printf()方法输出到控制台中。实现步骤如下。

(1)创建StrConversion类,将下面这段代码复制到类定义中。

例程06  代码位置:光盘/mr/07/sl/05/src/com/lzw/StrConversion.java

public static void main(String[] args) {

String str=null;

str=String.format("Hi,%s", "飞龙");          // 格式化字符串

System.out.println(str);                             // 输出字符串变量str的内容

System.out.printf("字母a的大写是:%c %n", 'A');

System.out.printf("3>7的结果是:%b %n", 3>7);

System.out.printf("100的一半是:%d %n", 100/2);

System.out.printf("100的16进制数是:%x %n", 100);

System.out.printf("100的8进制数是:%o %n", 100);

System.out.printf("50元的书打8.5折扣是:%f 元%n", 50*0.85);

System.out.printf("上面价格的16进制数是:%a %n", 50*0.85);

System.out.printf("上面价格的指数表示:%e %n", 50*0.85);

System.out.printf("上面价格的指数和浮点数结果的长度较短的是:%g %n", 50*0.85);

System.out.printf("上面的折扣是%d%% %n", 85);

System.out.printf("字母A的散列码是:%h %n", 'A');

}

(2)运行StrConversion类,在控制台中输出的结果如下:

Hi,飞龙

字母a的大写是:A

3>7的结果是:false

100的一半是:50

100的16进制数是:64

100的8进制数是:144

50元的书打8.5折扣是:42.500000 元

上面价格的16进制数是:0x1.54p5

上面价格的指数表示:4.250000e+01

上面价格的指数和浮点数结果的长度较短的是:42.5000

上面的折扣是85%

字母A的散列码是:41

这些字符串格式参数不但可以灵活将其他数据类型转换成字符串,而且可以与各种标志组合在一起,生成各种格式的字符串,这些标志如表7.2所示。

表7.2                             搭配转换符的标志

标    志

说    明

示    例

结    果

+

为正数或者负数添加符号

("%+d",15)

+15

左对齐

("%-5d",15)

|15   |

0

数字前面补0

("%04d", 99)

0099

空格

在整数之前添加指定数量的空格

("% 4d", 99)

|  99|

,

以“,”对数字分组

("%,f", 9999.99)

9,999.990000

(

使用括号包含负数

("%(f", -99.99)

(99.990000)

#

如果是浮点数则包含小数点,如果是16进制或8进制则添加0x或0

("%#x", 99)

("%#o", 99)

0x63

0143

<

格式化前一个转换符所描述的参数

("%f和%<3.2f", 99.45)

99.450000和99.45

$

被格式化的参数索引

("%1$d,%2$s", 99,"abc")

99,abc

ch0706实例位置:mr/07/sl/06

下面的实例使用几种常用的转换符组合标志实现字符串的格式化,并通过System.out.printf()方法输出到控制台中。实现步骤如下。

(1)创建StrDateTime类,将下面这段代码复制到类定义中。

例程07  代码位置:光盘/mr/07/sl/06/src/com/lzw/StrFormat.java

public static void main(String[] args) {

String str=null;

str=String.format("格式参数$的使用:%1$d,%2$s", 99,"abc");           // 格式化字符串

System.out.println(str);                                                                                     // 输出字符串变量

System.out.printf("显示正负数的符号:%+d与%d%n", 99,-99);

System.out.printf("最牛的编号是:%03d%n", 7);

System.out.printf("Tab键的效果是:% 8d%n", 7);

System.out.printf("整数分组的效果是:%,d%n", 9989997);

System.out.printf("一本书的价格是:%2.2f元%n", 49.8);

}

(2)运行StrFormat类,将在控制台输出字符串的格式化结果。

格式参数$的使用:99,abc

显示正负数的符号:+99与-99

最牛的编号是:007

Tab键的效果是:       7

整数分组的效果是:9,989,997

一本书的价格是:49.80元

String format -1 常规格式化的更多相关文章

  1. C#中string.Format()和ToString()格式化方法

    C#数字格式化输出是我们在编程中经常需要处理的事情,那么这里向你介绍了一些C#数字格式化输出的例子,这样就会方便你来选择和比较,什么方式是比较适合自己项目的. int a = 12345678; C# ...

  2. JAVA中String.format的用法 格式化字符串,格式化数字,日期时间格式化,

    1.对整数进行格式化:%[index$][标识][最小宽度]转换方式        我们可以看到,格式化字符串由4部分组成,其中%[index$]的含义我们上面已经讲过,[最小宽度]的含义也很好理解, ...

  3. string.Format 日期格式化

    String.Format日期的格式化例子: DateTime dt = DateTime.Now;//2010年10月4日 17点05分 string str = ""; //s ...

  4. String.format()格式化日期(2)

    在以前的开发中,日期格式化一直使用的是SimpleDateFormat进行格式化.今天发现String.format也可以格式化.当 然,两种方式的优劣没有进行深入分析. 1. 日期格式化 (2018 ...

  5. String.Format用法

    http://blog.csdn.net/yohop/article/details/2534907 1.作为参数   名称 说明   Format(String, Object) 将指定的 Stri ...

  6. String.Format使用方法

    1.作为參数   名称 说明   Format(String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项.   Format(String, ...

  7. String.format()的详细用法

    问题 在开发的时候一段字符串的中间某一部分是需要可变的 比如一个Textview需要显示”XXX用户来自 上海 年龄 21 性别 男” 其中的 XXX 是用户名 每个用户也是不一样的 地区 上海 为可 ...

  8. String.format()详细用法

    String.format()字符串常规类型格式化的两种重载方式 format(String format, Object… args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字 ...

  9. 转载:String.format()的详细用法

    转载自:https://blog.csdn.net/anita9999/article/details/82346552 问题 在开发的时候一段字符串的中间某一部分是需要可变的 比如一个Textvie ...

随机推荐

  1. 【Kernal Support Vector Machine】林轩田机器学习技术

    考虑dual SVM 问题:如果对原输入变量做了non-linear transform,那么在二次规划计算Q矩阵的时候,就面临着:先做转换,再做内积:如果转换后的项数很多(如100次多项式转换),那 ...

  2. js 请求异常重连或断线后联网重连机制(ajax)

    转到到 https://blog.csdn.net/mengtoumingren/article/details/80296788

  3. ASP.NET Core 认证与授权[1]:初识认证 (笔记)

    原文链接:  https://www.cnblogs.com/RainingNight/p/introduce-basic-authentication-in-asp-net-core.html 在A ...

  4. 课时1:我和python的第一次亲密接触

    目录: 一.Python3的下载与安装 二.从IDIE启动Python 三.尝试点新的东西 四.为什么会这样? 五.课时01课后习题及答案 ============================== ...

  5. 五、SPR 单一职责

    1.一个类具有什么职责,应该是站在他人的角度或者说是使用者的角度来定义.职责不是一件事,而是许多和职责相关的事组成的. 例如:一个快递员,除了送快递,还需要做分包.收款.那么快递员的职责是和快递相关的 ...

  6. PHP实现RSA签名生成订单功能【支付宝示例】

    //组合签名 $a=time(); $b=substr($a, 1); //生成随机订单号 $orderid= $b.mt_rand(10000,99999); //合作身份者id,以2088开头的1 ...

  7. kindeditor编辑器获取不到修改后的新文本

    在编辑文章的功能中,文章内容使用了kindeditor编辑器进行处理,但是修改文本后保存时发现获取到的内容还是修改前的文本内容. 引用编辑器的标签: <textarea id="txt ...

  8. Bsd内核选项总结

    Bsd内核选项总结 一: 下面这个选项在每个内核中都要有: machine i386 它指明了机器的硬件体系结构.它必须是i386, pc98, sparc64, alpha, ia64, amd64 ...

  9. CF 1103B Game with modulo

    题目 $a, x$ 是正整数.显然有 \begin{aligned} x \ge 2x \pmod{a} \implies a \le 2x \end{aligned} 若 $x \le a$ 则 \ ...

  10. 2017 多校3 hdu 6061 RXD and functions

    2017 多校3 hdu 6061 RXD and functions(FFT) 题意: 给一个函数\(f(x)=\sum_{i=0}^{n}c_i \cdot x^{i}\) 求\(g(x) = f ...