常规类型的格式化

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. js valueOf和toString方法

    JavaScript原生提供一个Object对象,所有其他对象都继承自这个对象,Object对象有valueOf和valueOf方法,所以所有JS数据类型都继承了这两种方法.   valueOf:返回 ...

  2. 服务过美国总统竞选的非传统投票UI【demo已放出】

    =============================== 更新:DEMO和分析已经放出,地址在这里   http://www.cnblogs.com/arfeizhang/p/faceoffde ...

  3. 用JAX-WS在Tomcat中发布WebService

    JDK中已经内置了Webservice发布,不过要用Tomcat等Web服务器发布WebService,还需要用第三方Webservice框架.Axis2和CXF是目前最流行的Webservice框架 ...

  4. Entity Framework(一)

    相关知识点复习: 1.var 类型推断: var p=new Person(); 2.匿名类型: var a=new {Name="wang",Age=12  }; 3.给新创建的 ...

  5. neutron floating ip 限速

    查看浮动ip的id [root@10e131e69e14 oz]# openstack floating ip show 36.111.0.197 +---------------------+--- ...

  6. Python MySQLdb 模块使用方法

    import MySQLdb 2.和数据库建立连接 conn=MySQLdb.connect(host="localhost",user="root",pass ...

  7. python 的tempfile学习

    import os import tempfile print "building a file name yourself:" filename = '/tmp/guess_my ...

  8. Eureka 向Server中注册服务

    Eureka支持注册与发现服务,本章讲解如何像服务中心注册服务. 在父工程下创建EurekaClient工程(eureka-provider): pom.xml <?xml version=&q ...

  9. 201621123033 《Java程序设计》第9周学习总结

    第九次作业 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1.2 选做:收集你认为有用的代码片段 //stream(),filter(),collect() ...

  10. myEclipse如何将程序部署到tomcat(附录MyEclipse调试快捷键)

    部署 1.选中你要部署的项目,在工具栏找到 Deploy MyEclipse J2EE Project to Server 2.单击Add,即出现如下界面.选择相应的Server,要和你在配置tomc ...