转自: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的语法解析及简单用法的更多相关文章

  1. 使用 java 实现一个简单的 markdown 语法解析器

    1. 什么是 markdown Markdown 是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用.看到这里请不要被「标记」.「语言」所迷惑,Markdown 的 ...

  2. JS的简单用法

    JS的简单用法 参考:http://www.w3school.com.cn/js/js_switch.asp JavaScript 是网络的脚本语言 JavaScript 是可插入 HTML 页面的编 ...

  3. Python3.x:bs4解析html基础用法

    Python3.x:bs4解析html基础用法 代码: import urllib.request from bs4 import BeautifulSoup import re url = r'ht ...

  4. Boost学习之语法解析器--Spirit

    Boost.Spirit能使我们轻松地编写出一个简单脚本的语法解析器,它巧妙利用了元编程并重载了大量的C++操作符使得我们能够在C++里直接使用类似EBNF的语法构造出一个完整的语法解析器(同时也把C ...

  5. NSCharacterSet 简单用法

    NSCharacterSet 简单用法 NSCharacterSet其实是许多字符或者数字或者符号的组合,在网络处理的时候会用到 NSMutableCharacterSet *base = [NSMu ...

  6. Knockout简单用法

    Knockout简单用法 在最近做的一个项目中,页面数据全部通过js ajax调用webapi接口获取,也就是说页面的数据全部使用javascript脚本填充,这就想到了使用一个MVVM模式的js框架 ...

  7. Func和Action委托简单用法

    Func和Action类是特殊的类型,它们允许你在不必指定自定义委托类型的情况下,去使用委托.在整个.NET框架中都可以使用它们.例如,在我们考察并行计算时,你也会看到这两个类的示例. 上面一段文字是 ...

  8. Generator函数语法解析

    转载请注明出处: Generator函数语法解析 Generator函数是ES6提供的一种异步编程解决方案,语法与传统函数完全不同.以下会介绍一下Generator函数. 写下这篇文章的目的其实很简单 ...

  9. JSP编译成Servlet(一)语法树的生成——语法解析

    一般来说,语句按一定规则进行推导后会形成一个语法树,这种树状结构有利于对语句结构层次的描述.同样Jasper对JSP语法解析后也会生成一棵树,这棵树各个节点包含了不同的信息,但对于JSP来说解析后的语 ...

随机推荐

  1. JSP之mysql中文乱码问题

    查看数据库编码方式 show variables like 'character%'; 关于jsp页面插入数据库乱码问题. 我遇到的问题是插入数据库后后台select * from tablename ...

  2. 上海MVP见面会

    很愉快,很有收获的一次见面!

  3. lr12关联,响应乱码

    1.前程贷登录.投标脚本 Action() { //    web_url("登录页", //        "URL=http://120.78.128.25:8765 ...

  4. day_45_Django

    day45 内容回顾 #### 1. HTTP协议 tcp/IP协议 HTTP特性: 无连接 请求--响应模式 请求格式 响应格式 Django相关 Django下载 命令行: pip install ...

  5. [Err] 1093 - You can't specify target table 'master_data' for update in FROM clause

    delete from master_data where category_id not in (select category_id from master_data a, bc_category ...

  6. QT学习教程

    原地址:http://www.devbean.NET/2012/08/qt-study-road-2-catelog/ 网上看到的不错的教程 本教程以qt5为主,部分地方会涉及qt4.据说非常适合qt ...

  7. Git 工具 - 储藏(Stashing)

    储藏(Stashing) 经常有这样的事情发生,当你正在进行项目中某一部分的工作,里面的东西处于一个比较杂乱的状态,而你想转到其他分支上进行一些工作.问题是,你不想提交进行了一半的工作,否则以后你无法 ...

  8. clusterware启动顺序——CRSD

    CRSD层面 1.启动过程 )导致">CRSD无法启动集群的应用程序资源的可能原因有:"> 原因:/etc/oracle/ocr.loc指向了错误的OCR文件 [gri ...

  9. chrome恢复默认搜索引擎为Google

    管理员身份运行cmd RD /S /Q "%WinDir%\System32\GroupPolicyUsers" RD /S /Q "%WinDir%\System32\ ...

  10. JavaScript的局部变量和全局变量小知识

    (了解一下,避免初学者犯错,但下面定义全局变量的做法并不推荐,只是让你们知道这是怎么一回事) 如果在函数中使用var定义一个变量,那么这个变量在函数退出后就会被销毁,例如: function test ...