转自: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. 运用python绘制小猪佩奇

    用python绘制小猪佩奇 1.打开idle 2.点击File-New Files 3.输入以下代码 1. from turtle import * 2. 3. def nose(x,y):#鼻子 4 ...

  2. 怎么让html中 还是显示<button> 而不进行编译

    toTXT(str) {    var RexStr = /\<|\>|\"|\'|\&| | /g    str = str.replace(RexStr,       ...

  3. 3DsMax 自动化操作(maxScript)

    这是我编写的一部分maxScript 脚本,专注于3DsMax 快速建模,程序化地为我们完成一些繁琐的工作. 可以极大提高公司开发的效率! 2019年04月09日 :上传 今年新开发的插件,还有很多, ...

  4. Python cv2库(人脸检测)

    根据访问图片识别 # coding:utf-8 import sysimport math import cv2 # 待检测的图片路径 imagepath = r'l.png' face_cascad ...

  5. js的回调函数

    介绍首先从英文介绍开始 A callback is a function that is passed as an argument to another function and is execut ...

  6. 本人亲身讲解本科期间学习Linux系统过程

    学习Linux也有一段时间了,回首这段时光,既迷茫过也既充实过.当时刚接触Linux是在大学,身边的同学都在学习,我想我也该学点一技之长了.我本科并不是计算机专业的,关于软件的课程也就只有C++,所以 ...

  7. Romaji (CodeForces - 1008A )

    Vitya has just started learning Berlanese language. It is known that Berlanese uses the Latin alphab ...

  8. Python之字符串方法

    def capitalize(self): # 第一个字符变大写 def center(self, width, fillchar=None): # 内容居中,两端可指定内容填充 def count( ...

  9. 一个C++右值引用的问题

    暂时先不更新前一篇文章了,感觉那个文章要写好久.累死. 今天说一说C++右值引用的一个问题. 这个问题的发现也是很偶然的. 来一段毫无意义但是能证明问题的代码: std::string &&a ...

  10. “ORA-12154: TNS: 无法解析指定的连接标识符”错误解决办法

    某政府项目中用.Net网站连接Oracle数据库,web.config使用的连接字符串如下: <add key="connstring_ora" value="Us ...