字符串格式化

您所在的位置:网站首页 用于对字符串进行格式化的是 字符串格式化

字符串格式化

#字符串格式化| 来源: 网络整理| 查看: 265

 

String类的静态format()方法用于创建格式化的字符串。format()方法有两种重载形式。

(1)format(String format,Object…args)

该方法使用指定的格式字符串和参数返回一个格式化字符串,格式化后的新字符串使用本地默认的语言环境。

语法如下:

str.format(String format,Object…args)

þ   format:格式字符串。

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

(2)format(Local l,String format,Object…args)

þ   l:格式化过程中要应用的语言环境。如果l为null,则不进行本地化。

þ   format:格式字符串。

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

1. 日期和时间字符串格式化

在应用程序设计中,经常需要显示时间和日期。如果想输出满意的日期和时间格式,一般需要编写大量的代码经过各种算法才能实现。format()方法通过给定的特殊转换符作为参数来实现对日期和时间的格式化。

þ   日期格式化

先来看下面的例子,返回一个月中的天数,实例代码如下:

Date date = new Date(); //创建Date对象date String s = String.format("%te", date); //通过format()方法对date进行格式化

上述代码中变量s的值是当前日期中的天数,如今天是15号,则s的值为15;%te是转换符。常用的日期格式化转换符如表5.1所示。

说明:java.util.Date是Java中的时间日期类,这个类表示特定的瞬间,精确到毫秒。默认获取当前的时间。

表5.1  常用的日期格式化转换符

转换符

说明

示例

%te

一个月中的某一天(1~31)

2

%tb

指定语言环境的月份简称

Feb(英文)、二月(中文)

%tB

指定语言环境的月份全称

February(英文)、二月(中文)

%tA

指定语言环境的星期几全称

Monday(英文)、星期一(中文)

%ta

指定语言环境的星期几简称

Mon(英文)、星期一(中文)

%tc

包括全部日期和时间信息

星期二三月 25 13:37:22 CST 2008

%tY

4位年份

2008

%tj

一年中的第几天(001~366)

085

%tm

月份

03

%td

一个月中的第几天(01~31)

02

%ty

2位年份

08

 

【例】在项目中创建类Eval,实现将当前日期信息以4位年份、月份全称、2位日期形式输出。 

01 import java.util.Date; //导入java.util.Date类 02 publicclass Eval { //新建类 03 publicstaticvoid main(String[] args) { //主方法 04 Date date = new Date(); //创建Date对象date 05 String year = String.format("%tY", date); //将date进行格式化 06 String month = String.format("%tB", date); 07 String day = String.format("%td", date); 08 System.out.println("今年是:" + year + "年"); //输出信息 09 System.out.println("现在是:" + month); 10 System.out.println("今天是:" + day + "号"); 11 } 12 }

运行结果如图5.36所示。

 

 图5.36获取指定的日期信息

þ   时间格式化

使用format()方法不仅可以完成日期的格式化,也可以实现时间的格式化。时间格式化转换符要比日期转换符更多、更精确,它可以将时间格式化为时、分、秒、毫秒。格式化时间的转换符如表5.2所示。

表5.2  时间格式化转换符

转换符

说明

示例

%tH

2位数字的24时制的小时(00~23)

14

%tI

2位数字的12时制的小时(01~12)

05

%tk

1~2位数字的24时制的小时(0~23)

5

%tl

1~2位数字的12时制的小时(1~12)

10

%tM

2位数字的分钟(00~59)

05

%tS

2位数字的秒数(00~60)

12

%tL

3位数字的毫秒数(000~999)

920

%tN

9位数字的微秒数(000000000~999999999)

062000000

%tp

指定语言环境下上午或下午标记

下午(中文)、pm(英文)

%tz

相对于GMT RFC 82 格式的数字时区偏移量

+0800

%tZ

时区缩写形式的字符串

CST

%ts

1970-01-01 00:00:00至现在经过的秒数

1206426646

%tQ

1970-01-01 00:00:00至现在经过的毫秒数

1206426737453

 

【例】在项目中创建类GetDate,实现将当前时间信息以2位小时数、2位分钟数、2位秒数形式输出。

 

01 import java.util.Date; //导入java.util.Date类 02 publicclass GetDate { //新建类 03 publicstaticvoid main(String[] args) { //主方法 04 Date date = new Date(); //创建Date对象date 05 String hour = String.format("%tH", date); //将date进行格式化 06 String minute = String.format("%tM", date); 07 String second = String.format("%tS", date); 08 //输出的信息 09 System.out.println("现在是:" + hour + "时" + minute + "分" 10 + second + "秒"); 11 } 12 }

 

运行结果如图5.37所示。

 

 图5.37获取当前时间

þ   格式化常见的日期时间组合

格式化日期与时间的转换符定义了各种日期时间组合的格式,其中最常用的日期和时间的组合格式如表5.3所示。

表5.3  常见的日期和时间组合的格式

转换符

说明

示例

%tF

“年-月-日”格式(4位年份)

2008-03-25

%tD

“月/日/年”格式(2位年份)

03/25/08

%tc

全部日期和时间信息

星期二三月 25 15:20:00 CST 2008

%tr

“时:分:秒 PM(AM)”格式(12时制)

03:22:06 下午

%tT

“时:分:秒”格式(24时制)

15:23:50

%tR

“时:分”格式(24时制)

15:25

【例】在项目中创建类DateAndTime,在主方法中实现将当前日期时间的全部信息以指定格式的日期输出。

 

01 import java.util.Date; //导入java.util.Date类 02 publicclass DateAndTime { //创建类 03 publicstaticvoid main(String[] args) { //主方法 04 Date date = new Date(); //创建Date对象date 05 String time = String.format("%tc", date); //将date格式化 06 String form = String.format("%tF", date); 07 //将格式化后的日期时间输出 08 System.out.println("全部的时间信息是:" + time); 09 System.out.println("年-月-日格式:" + form); 10 } 11 }

 

运行结果如图5.38所示。

 

图5.38将当前日期时间的全部信息以指定格式的日期输出

2.  常规类型格式化

常规类型的格式转化可应用于任何参数类型,可以通过表5.4所示的转换符来实现。

表5.4转换符

转换符

说明

示例

%b、%B

结果被格式化为布尔类型

true

%h、%H

结果被格式化为散列码

A05A5198

%s、%S

结果被格式化为字符串类型

“abcd”

%c、%C

结果被格式化为字符类型

‘a’

%d

结果被格式化为十进制整数

40

%o

结果被格式化为八进制整数

11

%x、%X

结果被格式化为十六进制整数

4b1

%e

结果被格式化为用计算机科学记数法表示的十进制数

1.700000e+01

%a

结果被格式化为带有效位数和指数的十六进制浮点值

0X1.C000000000001P4

%n

结果为特定于平台的行分隔符

 

%%

结果为字面值‘%’

%

【例】实现不同类型的格式转化。

01 publicclass StringFormat { 02 publicstaticvoid main(String[] args) { 03 String str1 = String.format("%c", 'X'); // 输出字符 04 System.out.println("字母x大写:" + str1); 05 String str2 = String.format("%d", 1251 + 3950); // 输出数字 06 System.out.println("1251+3950的结果是:" + str2); 07 String str3 = String.format("%.2f", Math.PI); // 输出小数点后两位 08 System.out.println("π取两位小数点:" + str3); 09 String str4 = String.format("%b", 2 < 3); // 输出布尔值 10 System.out.println("2


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3