2019独角兽企业重金招聘Python工程师标准>>>

格式化字符串

[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

淘气的页数 - 格式化字符串相关推荐

  1. [pwn]格式化字符串:0ctf 2015 login writeup

    文章目录 格式化字符串:0ctf 2015 login writeup 格式化字符串漏洞 题目分析 利用思路 开始利用 格式化字符串:0ctf 2015 login writeup 格式化字符串漏洞 ...

  2. 跟着CTF-Wiki学pwn|格式化字符串(1)

    文章目录 格式化字符串漏洞原理介绍 格式化字符串函数介绍 格式化字符串函数 格式化字符串 参数 格式化字符串漏洞原理 格式化字符串漏洞利用 程序崩溃 泄露内存 泄露栈内存 获取栈变量数值 获取栈变量对 ...

  3. C#格式化字符串,日期,时间,货币

    时间格式化 有时候我们要对时间进行转换,达到不同的显示效果  默认格式为:2005-6-6 14:33:34  如果要换成成200506,06-2005,2005-6-6或更多的该怎么办呢  我们要用 ...

  4. 使用C++ ostringstream来格式化字符串输出

    在Linux C中,我们通常使用snprintf来格式化字符串输出,但是有一个问题,就是可能会频繁申请大的缓冲区,并且无法实现字符串的动态增加,比如你定义的字符缓存为100个字节,如果你格式化以后的内 ...

  5. 零基础入门学习Python(14)-格式化字符串

    什么是格式化字符串 格式化字符串就是按照统一的规格去输出一个字符串,如果规格不统一,就很可能造成误会 format()方法 接受位置参数和关键字参数两种参数 二者均传递到一个replacement的字 ...

  6. python转化为字符串格式_Python格式化字符串~转

    在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作符,非常类似C语言里的pr ...

  7. 变量与字符串的连接 - format、格式化字符串

    变量与字符串的连接 先当以如下三个变量: name='wwb' age='17' job='study' 方法一:利用+号进行连接 >>>info1='''Welcome to '' ...

  8. 使用C#格式化字符串

    使用C#格式化字符串 1 前言 如果你熟悉Microsoft Foundation Classes(MFC)的CString,Windows Template Library(WTL)的CString ...

  9. 使用C#格式化字符串 1

    使用C#格式化字符串 1 前言 如果你熟悉Microsoft Foundation Classes(MFC)的CString,Windows Template Library(WTL)的CString ...

最新文章

  1. 直播活动丨BMMeetup第2期:大模型计算加速技术,2场特邀和7位青年学者技术报告联袂上演...
  2. pandas重命名变量名
  3. Java集合篇:Vector
  4. 2021牛客多校2 - Stack(单调栈+拓扑)
  5. 学习笔记-JMeter 进行接口压力测试
  6. JVM系列(三)— Java内存模型
  7. 提交日期表单状态操作_奇怪的知识又增加了,表单还能查寝?
  8. 用doxygen自动生成文档
  9. Atitit 迭代法  “二分法”和“牛顿迭代法 attilax总结
  10. 支付宝手机网站H5支付
  11. 主数据同步与分发实现
  12. vue 日程表组件_vue 会议日程列表
  13. 小程序JSAPI预下单与回调
  14. finereport 格式化金额函数_格式化金额数与自动四舍五入
  15. c++ ——二分查找函数
  16. Python-生成gif图片验证码
  17. 微信小程序调用扫一扫
  18. Macbook 苹果电脑 安装搭建Vue脚手架教程m1芯片Vue脚手架初学
  19. 多媒体计算机的核心,多媒体计算机系统的核心
  20. I3D泛读【Que Vadis,Action Recognition?A New Model and the Kinetics Dataset】

热门文章

  1. Activity具体解释(生命周期、以各种方式启动Activity、状态保存,全然退出等)...
  2. Kali Linux搜索软件包
  3. Xamarin Essentials教程使用指南针Compass
  4. Kali Linux 2017中Scapy运行bug解决
  5. apollo mqtt linux qt,MQTT第5版更新,以及如何应用到Qt MQTT模块中
  6. nrf52840 gpiote如何配置中断输入_STM32第四章外部中断管理
  7. C# json解析字符串总是多出双引号_在JavaScript应用中将CSV转换为JSON
  8. seaborn系列(1) | 关系类图relplot用法
  9. 想拥有一台属于你自己的无人机嘛?
  10. 打一针就可修复受损心脏,“癌症克星”CAR-T跨界疗法登上Science封面