摘自:http://xiongzhenhui.iteye.com/blog/940416

   http://blueram.iteye.com/blog/441683

一.常规类型、字符类型和数值类型的格式说明符的语法如下:%[argument_index$][flags][width][.precision]conversion

可选的 argument_index 是一个十进制整数,用于表明参数在参数列表中的位置。第一个参数由 "1___FCKpd___0quot; 引用,第二个参数由 "2___FCKpd___0quot; 引用,依此类推。

可选的 flags 是修改输出格式的字符集。有效标志的集合取决于转换类型。

可选 width 是一个非负十进制整数,表明要向输出中写入的最少字符数。

可选 precision 是一个非负十进制整数,通常用来限制字符数。特定行为取决于转换类型。

所需的 conversion 是一个表明应该如何格式化参数的字符。给定参数的有效转换集合取决于参数的数据类型。

1.格式化一个整数,位数不够向前补0(\d整数只能长度为10位)

String.format("%010d",123)则会转换成0000000123

2.格式化一个浮点数,整数位不够向前补0,小数位不够向后补0

String.format("%010.3f", new BigDecimal(123.0)).replace(".",""));(注意如果整个长度为9位.则长度要填写10(因为有.号)

3.格式化一个字符串.位数不够向后补空白

String.format("%10s","abc")(注意该方法不能格式化中文)

格式化含中文的用以下方法:

String content="java格式化";

String blank="                                ";//一定长度空格

(content+blank).substring(0, 20- content.getBytes().length);

二.格式化日期(后缀字符是为 't' 和 'T' 转换定义)

String.format("%tY", new Date())    //2011
  String.format("%tm", new Date())   //03
  String.format("%tF", new Date())    //2011-03-04
  String.format("%tR", new Date())   //15:49
  String.format("%tT", new Date())   //15:49:34
  String.format("%tc", new Date())   //星期五 三月 04 15:49:34 CST 2011
  String.format("%tD", new Date())  //03/04/11
  String.format("%td", new Date())   //04

以下转换字符用来格式化日期:

'B'     特定于语言环境的月份全称,例如 "January" 和 "February"。
'b'     特定于语言环境的月份简称,例如 "Jan" 和 "Feb"。
'h'     与 'b' 相同。
'A'     特定于语言环境的星期几全称,例如 "Sunday" 和 "Monday"
'a'     特定于语言环境的星期几简称,例如 "Sun" 和 "Mon"
'C'     除以 100 的四位数表示的年份,被格式化为必要时带前导零的两位数,即 00 - 99
'Y'     年份,被格式化为必要时带前导零的四位数(至少),例如,0092 等于格里高利历的 92 CE。
'y'     年份的最后两位数,被格式化为必要时带前导零的两位数,即 00 - 99。
'j'     一年中的天数,被格式化为必要时带前导零的三位数,例如,对于格里高利历是 001 - 366。
'm'     月份,被格式化为必要时带前导零的两位数,即 01 - 13。
'd'     一个月中的天数,被格式化为必要时带前导零两位数,即 01 - 31
'e'     一个月中的天数,被格式化为两位数,即 1 - 31。

以下转换字符用于格式化常见的日期/时间组合。

'R'     24 小时制的时间,被格式化为 "%tH:%tM"
'T'     24 小时制的时间,被格式化为 "%tH:%tM:%tS"。
'r'     12 小时制的时间,被格式化为 "%tI:%tM:%tS %Tp"。上午或下午标记 ('%Tp') 的位置可能与语言环境有关。
'D'     日期,被格式化为 "%tm/%td/%ty"。
'F'     ISO 8601 格式的完整日期,被格式化为 "%tY-%tm-%td"。
'c'     日期和时间,被格式化为 "%ta %tb %td %tT %tZ %tY",例如 "Sun Jul 20 16:17:00 EDT 1969"。

以下是代码:

记住以下代码例子和上面日期中的'T'和'F',基本就够用了

 import java.util.Date;

 public class StringTest {

         public static void main(String[] args) {
/* format格式说明符语法:%[argument_index$][flags][width][.precision]conversion
* 参数举例:
[argument_index$]: "1$" 第1个参数
[flags]: "0" , "" 填充字符,数字用"0"或"",字符串用""
[width]: "10","-10" 最后总宽度10,正数表示在前面添加,负数表示在后面添加。负数的情况一般只在字符串时才用
[.precision] : ".3" 小数点后保留3位小数,必须是浮点数类型参数才行
conversion: d 代表整数,f代表浮点数,s代表字符串,类型要匹配才行,否则报错 还有t转义的很多字符
*/
//为了能清楚地表示" ",我把结果中的空格换成了"@" //整数 必须是整数才能转换
System.out.println(String.format("%010d",123)); //
System.out.println(String.format("%2$08d", -3123,-5566)); //-0005566
System.out.println(String.format("%1$9d", -31)); //@@@@@@-31
System.out.println(String.format("%1$09d", -31)); //-00000031 //数字分割
System.out.println(String.format("%,d",Integer.MAX_VALUE)); //2,147,483,647
System.out.println(String.format("%,f",Float.MAX_VALUE)); //340,282,346,638,528,860,000,000,000,000,000,000,000.000000 //浮点数 必须是浮点数才能转换
System.out.println(String.format("%020.3f", 12.3)); //0000000000000012.300
System.out.println(String.format("%1$.2f", 5689.0)); //5689.00 //字符串 和 单字符c
System.out.println(String.format("%-10s", "sss")); //sss@@@@@@@
System.out.println(String.format("%10s", "sss")); //@@@@@@@sss
System.out.println(String.format("%5c", 'v')); //@@@@v //综合 日期处理
String s3= String.format("你的生日:%1$tF,现在的时间:%2$tT", new Date(),System.currentTimeMillis());
System.out.println(s3); //你的生日:2015-01-30,现在的时间:22:58:24 //格式化的位置
String str = "I love ni %s, you love me %s"; //当不标明参数时,将按顺序替换
String str2 = "I love ni %2$s, you love me %1$s";
System.out.println(String.format(str, "renjunjie","songliyu")); //I love ni renjunjie, you love me songliyu
System.out.println(String.format(str2, "renjunjie","songliyu")); //I love ni songliyu, you love me renjunjie //数组的操作
Object[] sendData = new Object[4];
sendData[0] = Integer.valueOf(1);
sendData[1] = "172.12.1.2";
sendData[2] = Integer.valueOf(123);
sendData[3] = "testadfaerfa";
String sendDataString = String.format("%d,%s,%d,%s",(Object[]) sendData); //当不标明参数时,将按顺序替换
System.out.println(sendDataString); //1,172.12.1.2,123,testadfaerfa
}
}

String的format方法的更多相关文章

  1. 字符串格式化-String类format方法

    常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象. format()方法有两种重载形式. 显示不同转换符实现不同数据类型到字符串的转换,如图所示: 测 ...

  2. 74、Salesforce的String的format方法

    String placehodler = 'Hello {0} , {1} is cool!'; List<String> fillers = new String[]{'Jason',' ...

  3. Java中String类的format方法使用总结

    可参考: http://www.cnblogs.com/fsjohnhuang/p/4094777.html http://kgd1120.iteye.com/blog/1293633 String类 ...

  4. VFP自定义函数StringFormat (仿.NET String.Format 方法)

    VFP仿.NET String.Format 方法 将指定字符串中的每个{x}替换为相应值,并返回文本 *-- 调用格式 StringFormat("日期{2},字符{1}",&q ...

  5. php示例代码之类似于C#中的String.Format方法

    php示例代码之类似于C#中的String.Format方法 原文来自于  http://stackoverflow.com/questions/1241177/c-string-format-equ ...

  6. Java中利用MessageFormat对象实现类似C# string.Format方法格式化

    我们在写C#代码的时候常常会使用到string.Format("待格式化字符串{0},{1},....",参数1,参数2,...),来格式化字符串,特别是拼接字符的时候,这种方式使 ...

  7. java基础---->String和MessageFormat的format方法

    这里介绍一下String和MessageFormat中的format方法的差异以及实现原理. String与MessageFormat的说明 一.两者的使用场景 String.format:for l ...

  8. java字符串格式化:String.format()方法的使用

    转自:http://kgd1120.iteye.com/blog/1293633 常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的读者应 ...

  9. C# String.Format的格式限定符与Format方法将多个对象格式化一个字符串原理

    Format方法将多个对象格式化成一个字符串Format方法解析格式字符串的原理: (1).格式字符串中的{0}会被替换成格式字符串之后的第一个参数,以此类推 (2).Format方法解析格式字符串时 ...

随机推荐

  1. 手机控制电脑,在WIFI局域网下(关机,重启,遥控)

    这个软件叫百变遥控:http://blog.sina.com.cn/s/blog_9abc7dbc0101hmut.html 今天周末,在家里看电影,家里用的是台式电脑,我自己买了一个投影仪来专门看视 ...

  2. Chapter 2. OpenSSL的安装和配置学习笔记

    Chapter 2. OpenSSL的安装和配置学习笔记 2.1 在linux上面安装OpenSSL我还是做点No paper事情比较在行,正好和老师的课程接轨一下.以前尝试过在Windows上面安装 ...

  3. 转:快乐Node码农的十个习惯

    文章来源于:http://www.infoq.com/cn/articles/node.js-habits 从问世到现在将近20年,JavaScript一直缺乏其它有吸引力的编程语言,比如Python ...

  4. beini系列_1_U盘引导制作

    奶瓶(beini)这个系统,是一款基于 Tiny Core Linux 搭建的无线网络安全测试系统,当然由于它是用来安全测试的系统,因此在安全方面自然有着强大的功能.而且,这个系统非常简便易学,因此现 ...

  5. 关于RESTful

    http://www.ruanyifeng.com/blog/2011/09/restful.html (1)每一个URI代表一种资源: (2)客户端和服务器之间,传递这种资源的某种表现层: (3)客 ...

  6. OpenRisc-47-or1200的WB模块分析

    引言 “善妖善老,善始善终”,说的是无论什么事情要从有头有尾,别三分钟热度. 对于or1200的流水线来说,MA阶段是最后一个阶段,也是整条流水线的收尾阶段,负责战场的清扫工作.比如,把运算指令的运算 ...

  7. 最短路算法模板合集(Dijkstar,Dijkstar(优先队列优化), 多源最短路Floyd)

    再开始前我们先普及一下简单的图论知识 图的保存: 1.邻接矩阵. G[maxn][maxn]; 2.邻接表 邻接表我们有两种方式 (1)vector< Node > G[maxn]; 这个 ...

  8. JavaScript权威指南学习笔记5

    下午在杭图回去前看了书中第二部分的13-17章,看的很粗,感觉大部分东西自己已经知道或者平时开发中不会用到,很多章节只是简单的翻了一下,没有仔细思考里面说到的道理,下面对各章节简单的记录下. 第13章 ...

  9. 常用sql语句及案例(oracle)

    目录 1)基本 2)数学函数 3)rownum 4)分页 5)时间处理 6)字符函数 7)to_number 8)聚合函数 9)学生选课 10)图书馆借阅 基本 --新建表: ) ) not null ...

  10. Apache安装完服务没有安装的情况

    安装完apache之后(不是按照默认路径安装的,例如是 D:\ )右下方哪个小羽毛图标是没有启动的,左键不好使,而且提示“No services installed”,提示服务器没有被安装.解决方法: ...