String formate的语法解析及简单用法
转自:https://blog.csdn.net/jiangyu1013/article/details/52607257
package cn.wuxiangbin.StringFormat; import java.text.DateFormat;
import java.util.Calendar;
import java.util.Date; /**
* StringFormat解析
* 公式: %[argument_index$][flags][width][.precision]conversion
* argument_index: 可选,是一个十进制整数,用于表明参数在参数列表中的位置。
* 第一个参数由 "1$" 引用,第二个参数由 "2$" 引用,依此类推。
flags: 可选,用来控制输出格式
width: 可选,是一个正整数,表示输出的最小长度
precision:可选,用来限定输出字符数
conversion:必须,用来表示如何格式化参数的字符
*/
public class Demo01 { public static void main(String[] args) {
//案例1
System.out.println(String.format("我的名字叫%s","小明"));
//我的名字叫小明, 占位的字符一定要是s,否则报错,%是标识一定要有 //案例2
System.out.println(String.format("我叫%s,她叫%s","小明","小红"));
//我叫小明,她叫小红 //案例3
System.out.println(String.format("我叫%2$s,她叫%1$s","小明","小红"));
//我叫小红,她叫小明, 1$,2$表示参数填充顺序 /**
* conversion可以填s,那还有什么其它字母可以填呢,当然有的比如
o:结果被格式化为八进制整数
x:结果被格式化为十六进制
d:结果被格式化为十进制整数
更多的conversion类别可以参考JDK文档java.util.Formatter类
*/
//案例4
System.out.println(String.format("%o",)); //
System.out.println(String.format("%x",)); // /**
* 接下来我们了解flag和width的用法
flag是用来控制输出格式的,比如左对齐,金额用逗号隔开等
width:表示最小宽度
*/
//案例5
System.out.println(String.format("%1$,d",));//12,302,562
//","就是flag,用于金额千分位隔开,也可以写成"%,d" //案例6
System.out.println(String.format("%1$08d",));//00123456
//0也是flag, 表示结果用0填充,8 就是width,表示最少要8位,d就是conversion /**
* 接下来说下[.precision]
这个单词翻译下是精度的意思,我们发现了前面有个小数点".",因此不难联想到这个是关于浮点数类型的
只有当传入的数据是浮点数时这个才有用,整数或者日期类型的数据都不能用
*/
//案例7
System.out.println(String.format("%1$.2f",12.12555));//12.13
//"."就是precision,表示精度,数字表示取精度位
// f是conversion表示传入的数字是浮点型,
/**
* 用法说明:
* 对于浮点转换 'e'、'E' 和 'f',精度是小数点分隔符后的位数。如果转换是 'g' 或 'G',那么精度是舍入计算后所得数值的所有位数。如果转换是 'a' 或 'A',则不必指定精度。
对于字符、整数和日期/时间参数类型转换,以及百分比和行分隔符转换,精度是不适用的;如果提供精度,则会抛出异常。
*/ /**
* 具体应用:
* 用于表示日期和事件类型的格式说明符语法:
* %[argument_index$][flags][width]conversion
*需要注意的是conversion 是一个由两字符组成的序列。第一个字符是 't' 或 'T'。
也就是说用conversion的时候首先必要写一个"t",然后在写其它conversion */ //案例7
System.out.format("Local time: %tT", Calendar.getInstance());
//Local time: 21:49:44
System.out.format("Local time: %tT", new Date());
System.out.println();
//Local time: 21:50:08
System.out.format("%1$tY-%1$tm-%1$te", new Date());
System.out.println();
//2018-09-1
/**
* 需要批量进行格式化时,考
* 虑下DateFormat, MessageFormat, NumberFormat 把他们封装成一个静态工具类或许更好
*/
DateFormat dateInstance = DateFormat.getDateInstance();
//
}
}
String formate的语法解析及简单用法的更多相关文章
- 使用 java 实现一个简单的 markdown 语法解析器
1. 什么是 markdown Markdown 是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用.看到这里请不要被「标记」.「语言」所迷惑,Markdown 的 ...
- JS的简单用法
JS的简单用法 参考:http://www.w3school.com.cn/js/js_switch.asp JavaScript 是网络的脚本语言 JavaScript 是可插入 HTML 页面的编 ...
- Python3.x:bs4解析html基础用法
Python3.x:bs4解析html基础用法 代码: import urllib.request from bs4 import BeautifulSoup import re url = r'ht ...
- Boost学习之语法解析器--Spirit
Boost.Spirit能使我们轻松地编写出一个简单脚本的语法解析器,它巧妙利用了元编程并重载了大量的C++操作符使得我们能够在C++里直接使用类似EBNF的语法构造出一个完整的语法解析器(同时也把C ...
- NSCharacterSet 简单用法
NSCharacterSet 简单用法 NSCharacterSet其实是许多字符或者数字或者符号的组合,在网络处理的时候会用到 NSMutableCharacterSet *base = [NSMu ...
- Knockout简单用法
Knockout简单用法 在最近做的一个项目中,页面数据全部通过js ajax调用webapi接口获取,也就是说页面的数据全部使用javascript脚本填充,这就想到了使用一个MVVM模式的js框架 ...
- Func和Action委托简单用法
Func和Action类是特殊的类型,它们允许你在不必指定自定义委托类型的情况下,去使用委托.在整个.NET框架中都可以使用它们.例如,在我们考察并行计算时,你也会看到这两个类的示例. 上面一段文字是 ...
- Generator函数语法解析
转载请注明出处: Generator函数语法解析 Generator函数是ES6提供的一种异步编程解决方案,语法与传统函数完全不同.以下会介绍一下Generator函数. 写下这篇文章的目的其实很简单 ...
- JSP编译成Servlet(一)语法树的生成——语法解析
一般来说,语句按一定规则进行推导后会形成一个语法树,这种树状结构有利于对语句结构层次的描述.同样Jasper对JSP语法解析后也会生成一棵树,这棵树各个节点包含了不同的信息,但对于JSP来说解析后的语 ...
随机推荐
- ElasticsearchCRUD翻译系列之(一): ElasticsearchCRUD 介绍
ELASTICSEARCH CRUD .NET PROVIDER 翻译自(原文地址: https://damienbod.com/2014/09/22/elasticsearch-crud-net-p ...
- unity 中让Text的文字动态刷新形式
第一种刷新文字形式 using UnityEngine; using System.Collections; using UnityEngine.UI; public class SensorText ...
- flask第一章 flask启动 路由视图 FlaskRequest jinja2 FlaskSession
一.简单了解flask web框架 优点: 小而精,组件只有session,第三方机构强烈支持flask,极其简单 缺点: 由于第三方软件的关系,稳定性相对较差,flask-session 扩展知识: ...
- vue+uwsgi+nginx部署前后端分离项目
前后端分离,vue前端提供静态页面,且可以向后台发起get,post等restful请求. django后台提供数据支撑,返回json数据,返回给vue,进行数据页面渲染 后端 创建虚拟环境 解决dj ...
- 结对编程ending-我和洧洧的碎碎念
应该是第一次和队友分工合作去完成一个项目,其中也经历了跳进不少坑又被拉回来的过程,总体来说这对于我俩也的确是值得纪念的一次经历. 我的碎碎念时间…… 对比个人项目和结对编程项目二者需求,前者重在面对不 ...
- [转载]关于laravel中表关系的一对一、一对多、多对一、多对多实践
这是转载的文章 出处:https://blog.csdn.net/weixin_38112233/article/details/79220535 作者:重新遇到 一.建表和插入测试数据 1.用户表建 ...
- JAVAEE 第七周
JSON语法: JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集 ...
- python笔记25-sys模块
import sys#sys.argv命令行参数List,第一个元素是程序本身路径# sys.exit('xxxxx')#退出程序,正常退出时exit(0)# print(sys.version) # ...
- Vmware网络不可达
1. ifconfig -a 查看当前的网卡 2. cd /etc/sysconfig/network-scripts/ 3. 打开对应网卡名称文件, 具体修改内容参考(https://www. ...
- Python爬虫开源项目代码,爬取微信、淘宝、豆瓣、知乎、新浪微博、QQ、去哪网等 代码整理
作者:SFLYQ 今天为大家整理了32个Python爬虫项目.整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快 1.WechatSogou [ ...