淘气的页数 - 格式化字符串
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
淘气的页数 - 格式化字符串相关推荐
- [pwn]格式化字符串:0ctf 2015 login writeup
文章目录 格式化字符串:0ctf 2015 login writeup 格式化字符串漏洞 题目分析 利用思路 开始利用 格式化字符串:0ctf 2015 login writeup 格式化字符串漏洞 ...
- 跟着CTF-Wiki学pwn|格式化字符串(1)
文章目录 格式化字符串漏洞原理介绍 格式化字符串函数介绍 格式化字符串函数 格式化字符串 参数 格式化字符串漏洞原理 格式化字符串漏洞利用 程序崩溃 泄露内存 泄露栈内存 获取栈变量数值 获取栈变量对 ...
- C#格式化字符串,日期,时间,货币
时间格式化 有时候我们要对时间进行转换,达到不同的显示效果 默认格式为:2005-6-6 14:33:34 如果要换成成200506,06-2005,2005-6-6或更多的该怎么办呢 我们要用 ...
- 使用C++ ostringstream来格式化字符串输出
在Linux C中,我们通常使用snprintf来格式化字符串输出,但是有一个问题,就是可能会频繁申请大的缓冲区,并且无法实现字符串的动态增加,比如你定义的字符缓存为100个字节,如果你格式化以后的内 ...
- 零基础入门学习Python(14)-格式化字符串
什么是格式化字符串 格式化字符串就是按照统一的规格去输出一个字符串,如果规格不统一,就很可能造成误会 format()方法 接受位置参数和关键字参数两种参数 二者均传递到一个replacement的字 ...
- python转化为字符串格式_Python格式化字符串~转
在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作符,非常类似C语言里的pr ...
- 变量与字符串的连接 - format、格式化字符串
变量与字符串的连接 先当以如下三个变量: name='wwb' age='17' job='study' 方法一:利用+号进行连接 >>>info1='''Welcome to '' ...
- 使用C#格式化字符串
使用C#格式化字符串 1 前言 如果你熟悉Microsoft Foundation Classes(MFC)的CString,Windows Template Library(WTL)的CString ...
- 使用C#格式化字符串 1
使用C#格式化字符串 1 前言 如果你熟悉Microsoft Foundation Classes(MFC)的CString,Windows Template Library(WTL)的CString ...
最新文章
- 直播活动丨BMMeetup第2期:大模型计算加速技术,2场特邀和7位青年学者技术报告联袂上演...
- pandas重命名变量名
- Java集合篇:Vector
- 2021牛客多校2 - Stack(单调栈+拓扑)
- 学习笔记-JMeter 进行接口压力测试
- JVM系列(三)— Java内存模型
- 提交日期表单状态操作_奇怪的知识又增加了,表单还能查寝?
- 用doxygen自动生成文档
- Atitit 迭代法 “二分法”和“牛顿迭代法 attilax总结
- 支付宝手机网站H5支付
- 主数据同步与分发实现
- vue 日程表组件_vue 会议日程列表
- 小程序JSAPI预下单与回调
- finereport 格式化金额函数_格式化金额数与自动四舍五入
- c++ ——二分查找函数
- Python-生成gif图片验证码
- 微信小程序调用扫一扫
- Macbook 苹果电脑 安装搭建Vue脚手架教程m1芯片Vue脚手架初学
- 多媒体计算机的核心,多媒体计算机系统的核心
- I3D泛读【Que Vadis,Action Recognition?A New Model and the Kinetics Dataset】
热门文章
- Activity具体解释(生命周期、以各种方式启动Activity、状态保存,全然退出等)...
- Kali Linux搜索软件包
- Xamarin Essentials教程使用指南针Compass
- Kali Linux 2017中Scapy运行bug解决
- apollo mqtt linux qt,MQTT第5版更新,以及如何应用到Qt MQTT模块中
- nrf52840 gpiote如何配置中断输入_STM32第四章外部中断管理
- C# json解析字符串总是多出双引号_在JavaScript应用中将CSV转换为JSON
- seaborn系列(1) | 关系类图relplot用法
- 想拥有一台属于你自己的无人机嘛?
- 打一针就可修复受损心脏,“癌症克星”CAR-T跨界疗法登上Science封面