原创

Java中String.format()函数使用字符串格式化详解

字符串被广泛应用于Java编程之中,在Java中字符串是属于对象的,Java提供了String类的创建和操作字符串函数。输出格式化数字可以使用printf()和format()方法。String类使用静态方法format()返回一个String对象而不是PrintStream对象。String类的静态方法format()能用来创建可复用的格式化字符串,而不仅仅是用于一次打印输出,本站素文宅 www.yoodb.com 下面就为大家说说格式化字符串。

使用指定格式字符串格式化字符串参数,具体Java源码如下:

public static String format(String format, Object ... args) {
return new Formatter().format(format, args).toString();
}

使用指定的语言环境(本地语言环境),格式字符串返回一个格式化字符串和参数,具体Java源码如下:

public static String format(Locale l, String format, Object ... args) {
return new Formatter(l).format(format, args).toString();
}

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代表不同的日期与时间转换符

2)日期事件字符串格式化,具体如下所示:

转换符     说明           示例

c 包括全部日期和时间信息 星期六 十月 8 13:21:20 CST 2016

F “年-月-日”格式 2016-10-08

D “月/日/年”格式 10/08/16

r “HH:MM:SS PM”格式(12时制) 13:21:20 下午

T “HH:MM:SS”格式(24时制) 13:21:24

R “HH:MM”格式(24时制) 13:21

3)时间的字符串格式化,具体如下所示:

转换符     说明           示例

H 2位数字24时制的小时(不足2位前面补0) 15

I 2位数字12时制的小时(不足2位前面补0) 03

k 2位数字24时制的小时(前面不补0) 15

l 2位数字12时制的小时(前面不补0) 3

M 2位数字的分钟(不足2位前面补0)       03

S 2位数字的秒(不足2位前面补0)       09

L 3位数字的毫秒(不足3位前面补0)       015

N 9位数字的毫秒数(不足9位前面补0)   562000000

p 小写字母的上午或下午标记      中:下午 英:pm

z 相对于GMT的RFC822时区的偏移量       +0800

Z 时区缩写字符串                       CST

s 1970-1-1 00:00:00 到现在所经过的秒数 1193468128

Q 1970-1-1 00:00:00 到现在所经过的毫秒数 1193468128984

下面举一些常用的案例,具体代码如下:

package com.test;
import java.util.Date;
import java.util.Locale;
/**
 * 素文宅  www.yoodb.com 
 */
public class Test {
public static void main(String args[]) {
String str = null;
str = String.format("Hi %s", "张三");
System.out.println(str);
str = String.format(Locale.ENGLISH,"Hi %s", "Zhang San");
System.out.println(str);
Date date = new Date();
System.out.printf("年-月-日格式:%tF%n",date); //printf()函数可以指定类型
str = String.format("%tH", date);
str += String.format(":%tM", date);
str += String.format(":%tS", date);
System.out.println("24时制的时分秒(不足2位前面补0):" + str);
}
}

输出结果,如下所示:

Hi 张三
Hi Zhang San
年-月-日格式:2016-10-08
24时制的时分秒(不足2位前面补0):14:27:08
~阅读全文-人机检测~

微信公众号“Java精选”(w_z90110),专注Java技术干货分享!让你从此路人变大神!回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。微信搜索小程序“Java精选面试题”,内涵3000+道Java面试题!

涵盖:互联网那些事、算法与数据结构、SpringMVC、Spring boot、Spring Cloud、ElasticSearch、Linux、Mysql、Oracle等

评论

分享:

支付宝

微信