淘气的页数 - 格式化字符串

格式化字符串

[toc]

淘气的页数

大牛:“小鸟,发什么呆啊?”

小鸟:“牛哥,我这里要写一个显示当前位于第几页的效果:< 第[1]页 >,这里的页数是可变的”

大牛:“嗯,对啊!有什么问题?”

小鸟:“我这里非常的疑惑,如果我用字符串拼接(+连接),我就会无形中多创建好多个String对象,有点浪费内存。”

int n = 1;
String string = "< 第[" + n + "+]页 >";

小鸟:“如果我使用StringBuffer的话,是能解决这个问题,但是我感觉写的太多了,代码不够简洁。”

int n = 1;
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("< 第[");
stringBuffer.append(n);
stringBuffer.append("+]页 >");

小鸟:“我记得以前学c语言的时候,有一个叫格式化字符串的东东,要是这里也能这样就好了。”

大牛:“有啊!java里面也是有的,下面我就给你详细的讲解一下。”

转换符

使用

String.format("姓名:%s", "张三")

System.out.printf("姓名:%s", "张三");

大牛:“我们要显示不同的数据类型,自然要有不同的表现形式,不然计算机会迷糊的,这里的不同的表现形式我们就叫做转换符,转换符的种类如下:”

转换符说明eg结果
%s字符串类型String.format("姓名:%s", "张三")姓名:张三
%c字符类型String.format("a的大写字母是:%c",'A')a的大写字母是:A
%b布尔类型String.format("2>3:%b",2>3);2>3:false
%d整数类型(十进制)String.format("第%d页",1)第1页
%x整数类型(十六进制)String.format("16的16进制数是:%x",16)16的16进制数是:10
%f浮点类型String.format("100的85折是:%f",100*0.85)100的85折是:85.000000
%a浮点类型(十六进制)String.format("100的85折的16进制是:%a",100*0.85)100的85折的16进制是:0x1.54p6
%e指数类型
%g通用浮点类型
%h散列码
%n换行符
%txx代表不同的日期与时间转换符
  • x
转换符说明eg结果
c包括全部日期和时间信息String.format("包括全部日期和时间信息:%tc",new Date())包括全部日期和时间信息:星期三 四月 27 15:24:29 CST 2016
F年-月-日String.format("年-月-日:%tF",new Date())年-月-日:2016-04-27
D月/日/年String.format("月/日/年:%tD",new Date())月/日/年:04/27/16
rHH:MM:SS PMString.format("HH:MM:SS PM:%tr",new Date())HH:MM:SS PM:03:34:41 下午
THH:MM:SSString.format("HH:MM:SS:%tT",new Date())HH:MM:SS:15:36:12
RHH:MMString.format("HH:MM:%tR",new Date())HH:MM:15:36
b月份String.format(Locale.US,"英文月份简称:%tb",new Date())英文月份简称:Apr
String.format("本地月份:%tb",new Date())本地月份:四月
B月份String.format(Locale.US,"英文月份全称:%tB",new Date())英文月份全称:April
String.format("本地月份:%tB",new Date())本地月份:四月
a星期String.format(Locale.US,"英文星期简称:%ta",new Date())英文星期简称:Wed
String.format("本地星期:%ta",new Date())本地星期:星期三
A星期String.format(Locale.US,"英文星期全称:%tA",new Date())英文星期简称:Wednesday
String.format("本地星期:%tA",new Date())本地星期:星期三
j年的第几天String.format("年的第几天:%tj",new Date())年的第几天:118
m两位数字的月份(不足两位补0)String.format("两位数字的月份(不足两位补0):%tm",new Date())两位数字的月份(不足两位补0):04
d两位数字的日(不足两位前面补0)String.format("两位数字的日(不足两位前面补0):%td",new Date())两位数字的日(不足两位前面补0):27
e月份的日(前面不补0)String.format("两位数字的日(不足两位前面补0):%te",new Date())两位数字的日(不足两位前面补0):7

标志符

通常与转换符结合使用,位于% 格式:%[标志符][s|c|b|d...]

输入图片说明

转载于:https://my.oschina.net/cj0072016/blog/667091

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值