JDK1.5中,String类新增了一个很有用的静态方法String.format():

format(Locale l, String format, Object... args) 使用指定的语言环境、格式字符串和参数返回一个格式化字符串。

format(String format, Object... args) 使用指定的格式字符串和参数返回一个格式化字符串。

举几个这个方法实用的例子(注释是输出结果):

CODE:

long now = System.currentTimeMillis();

String s = String.format("%tR", now);   // "15:12"

CODE:

// Current month/day/year

Date d = new Date(now);

s = String.format("%tD", d);                // "07/13/04"

CODE:

s = String.format("%,d", Integer.MAX_VALUE); // "2,147,483,647"

CODE:

s = String.format("%05d", 123);              // "00123"是不是很方便,让人动心啊?哈哈,还有更多的效果!

其实format函数有些类似c语言中printf函数,一些格式字符串与 C

类似,但已进行了某些定制,以适应 Java

语言,并且利用了其中一些特性。此方法提供了对布局对齐和排列的支持,以及对数值、字符串和日期/时间数据的常规格式和特定于语言环境的输出的支持。支持

诸如 byte、BigDecimal 和 Calendar 等常见 Java 类型。

产生格式化输出的每个方法都需要格式字符串 和参数列表。格式字符串是一个 String,它可以包含固定文本以及一个或多个嵌入的格式说明符。请考虑以下示例:

Calendar c = ...;

String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c);

格式字符串是 format 方法的第一个参数。它包含三个格式说明符

"%1$tm"、"%1$te" 和 "%1$tY",它们指出应该如何处理参数以及在文本的什么地方插入它们。格式字符串的其余部分是包括

"Dukes Birthday: " 和其他任何空格或标点符号的固定文本。 参数列表由传递给位于格式字符串之后的方法的所有参数组成。

在上述示例中,参数列表的大小为 1,由新对象 Calendar 组成。

1.常规类型、字符类型和数值类型的格式说明符的语法如下:

%[argument_index$][flags][width][.precision]conversion

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

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

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

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

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

2.用来表示日期和时间类型的格式说明符的语法如下:%[argument_index$][flags][width]conversion

可选的 argument_index 、flags 和 width 的定义同上。

所需的 conversion 是一个由两字符组成的序列。第一个字符是 't' 或 'T'。第二个字符表明所使用的格式。这些字符类似于但不完全等同于那些由 GNU date 和 POSIX strftime(3c) 定义的字符。

3.与参数不对应的格式说明符的语法如下:

%[flags][width]conversion

可选 flags 和 width 的定义同上。

所需的 conversion 是一个表明要在输出中所插内容的字符。

转换

转换可分为以下几类:

1. 常规 - 可应用于任何参数类型

2.

字符 - 可应用于表示 Unicode 字符的基本类型:char、Character、byte、Byte、short 和 Short。当

Character.isValidCodePoint(int) 返回 true 时,可将此转换应用于 int 和 Integer 类型

3. 数值

1. 整数 - 可应用于 Java 的整数类型:byte、Byte、short、Short、int、Integer、long、Long 和 BigInteger

2. 浮点 - 可用于 Java 的浮点类型:float、Float、double、Double 和 BigDecimal

4. 日期/时间 - 可应用于 Java 的、能够对日期或时间进行编码的类型:long、Long、Calendar 和 Date。

5. 百分比 - 产生字面值 '%' ('\u0025')

6. 行分隔符 - 产生特定于平台的行分隔符

Java代码  

Double d =12.3366;

System.out.println(String.format("%2$08d", -3123,-5566));

System.out.println(String.format("%1$9d", -31));

System.out.println(String.format("%1$-9d", -31));

System.out.println(String.format("%1$(9d", -31));

System.out.println(String.format("%1$#9x",5689));

//小数点后面两位

System.out.println(String.format("%1$.2f",5689.0));//必须是同类型的才能进行转换

//格式化的位置

/*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"));

System.out.println(String.format(str2, "renjunjie","songliyu"));*/

//数组的操作

Object[] sendData = newObject[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);

java string... 参数_Java String.Format() 方法及参数说明相关推荐

  1. java formatter 填充_Java Formatter format()方法及示例

    格式化程序类format()方法 语法:public Formatter format(Locale lo, String frmt, Object... args); public Formatte ...

  2. java wait 参数_Java Object wait()方法

    Java Object wait()方法 java.lang.Object.wait(long timeout, int nanos) 导致当前线程等待,直到其他线程调用此对象的 notify() 方 ...

  3. java 08d_Java String.Format() 方法及参数说明

    JDK1.5中,String类新增了一个很有用的静态方法String.format(): format(Locale l, String format, Object... args) 使用指定的语言 ...

  4. java replace无效_Java String.replace()方法无效的原因及解决方式

    首先我们来看个例子 public class Demo1 { public static void main(String[] args) { String aa="abcd"; ...

  5. Android中String资源文件的format方法

    很多时候我们感性Google在设计 Android时遵守了大量 MVC 架构方式,可以让写公共代码.美工和具体逻辑开发人员独立出来.有关Android 的资源文件values/strings.xml中 ...

  6. java runnable 参数_Java向Runnable线程传递参数方法实例解析

    java Runnable接口:是一个接口,它里面只有一个run()方法,没有start()方法,继2113承Runnable并实现这个方法就可以实现多线程了,但是5261这个run()方法不能自41 ...

  7. c java 传参数_Java和C的方法参数传递方式的比较

    java中的形参是复制实参的一份拷贝(对于引用类型则是复制引用的拷贝,在栈中的拷贝),所以在函数中改变形参是无法改变实参的值的,改变引用只是将形参所代表的引用指向另外的新的对象,而实参的引用还指向原来 ...

  8. java自制缓冲池_java String 缓冲池概念的举例说明

    口试中常会碰到String对象构造的题目.例如String s= new String("a");创建了几个对象. 下面根据代码具体解释一下各种String构造情况. 代码如下: ...

  9. Java如何封装参数_java规范(一)------方法设计---返回多参数的方法怎么封装

    假如我们有2个变量count和content需要经过一个方法里改变它的值我们可以用下面的方法: main{ int count=0; String content=""; chan ...

最新文章

  1. Magento(麦进斗)安装问题
  2. 质量糟糕的代码会在项目中像病毒一样传播,尽量在源头控制好代码质量、强调范例的重要性...
  3. js 连接mysql_JS连接数据库
  4. JUnit与EasyMock合作
  5. 30号晚直播丨数据操作加速器,CloudQuery v1.3.5 发布!
  6. 【华为云技术分享】直播回顾丨激发数据裂变新动能,HDC.Cloud云数据库前沿技术解读
  7. JSP和Servlet互相传输数据的过程中产生的乱码问题及解决方案(没有使用AJAX的情况)...
  8. socket与TCP/UDP编程-转
  9. 转:Gulp使用指南
  10. 综合评价法——秩和比(RSR)
  11. java学术论文_java毕业设计论文-学术参考网
  12. %date~0,4%和 %time~0,2%等用法详解
  13. python k线形态识别_K线形态及识别要点大全
  14. 一个清华保送生妈妈对竞赛的感受,自主招生家长都要看看!
  15. python实现微信自动回复机器人+查看别人撤回的消息(部署到云服务器)
  16. pyecharts官网
  17. 社交网络——一部急风骤雨般的电影
  18. 数据结构学习笔记(7.查找 8.排序)
  19. 十一、HTML常用标签
  20. springboot项目添加了logback-spring.xml配置文件不生效

热门文章

  1. sdram trp_TRP的完整形式是什么?
  2. kadane算法_使用KADANE的算法求最大子阵列和
  3. 计算机考研985院校不歧视,考研最不歧视的985大学有哪些
  4. 语言中的petchar运用_还在担心你家孩子发音、语言问题?12个表现、3个预防是重点...
  5. 非导向传输媒体| 计算机网络
  6. Java CharArrayReader mark()方法与示例
  7. 怎样让VB6程序只能运行一次
  8. oracle应收模块核销点不上,详解EBS接口开发之应收款处理
  9. c++导出标准win32格式的dll
  10. Shiro授权流程图