博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
淘气的页数 - 格式化字符串
阅读量:5969 次
发布时间:2019-06-19

本文共 2362 字,大约阅读时间需要 7 分钟。

hot3.png

格式化字符串

[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 换行符
%tx x代表不同的日期与时间转换符
  • 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
r HH:MM:SS PM String.format("HH:MM:SS PM:%tr",new Date()) HH:MM:SS PM:03:34:41 下午
T HH:MM:SS String.format("HH:MM:SS:%tT",new Date()) HH:MM:SS:15:36:12
R HH:MM String.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

你可能感兴趣的文章
博为峰JavaEE技术文章 ——MyBatis Provider之@SelectProvider SQL方法
查看>>
Java核心API -- 9(异常)
查看>>
apache 编译报错:undefined reference to `apr_array_clear'
查看>>
图像识别DM8127开发攻略——UBOOT的移植说明
查看>>
ubuntu 下升级docker版本
查看>>
EXSi5.5安装篇
查看>>
开始记录吧
查看>>
windows下用php开发类似百度文库应用需要的工具和问题
查看>>
css模拟select设置高度在ie67下有效(也可作为去除边框)
查看>>
互联网思维
查看>>
ecshop备份数据 ecshop转移数据 ecshop更换主机
查看>>
手机将与瘦客户机争夺办公桌面
查看>>
ubuntu下针对php的thrift 安装折腾记录
查看>>
使用C#客户端访问FTP服务的一个解决方案
查看>>
对软件测试团队“核心价值”的思考
查看>>
mysql基础知识点
查看>>
Microsoft.System.Center.Operations.Manager.2007 中文版完整光盘下载地址
查看>>
Python快速教程
查看>>
ssh免密码登录
查看>>
Linux下Django环境安装
查看>>