java string... 参数_Java String.Format() 方法及参数说明
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() 方法及参数说明相关推荐
- java formatter 填充_Java Formatter format()方法及示例
格式化程序类format()方法 语法:public Formatter format(Locale lo, String frmt, Object... args); public Formatte ...
- java wait 参数_Java Object wait()方法
Java Object wait()方法 java.lang.Object.wait(long timeout, int nanos) 导致当前线程等待,直到其他线程调用此对象的 notify() 方 ...
- java 08d_Java String.Format() 方法及参数说明
JDK1.5中,String类新增了一个很有用的静态方法String.format(): format(Locale l, String format, Object... args) 使用指定的语言 ...
- java replace无效_Java String.replace()方法无效的原因及解决方式
首先我们来看个例子 public class Demo1 { public static void main(String[] args) { String aa="abcd"; ...
- Android中String资源文件的format方法
很多时候我们感性Google在设计 Android时遵守了大量 MVC 架构方式,可以让写公共代码.美工和具体逻辑开发人员独立出来.有关Android 的资源文件values/strings.xml中 ...
- java runnable 参数_Java向Runnable线程传递参数方法实例解析
java Runnable接口:是一个接口,它里面只有一个run()方法,没有start()方法,继2113承Runnable并实现这个方法就可以实现多线程了,但是5261这个run()方法不能自41 ...
- c java 传参数_Java和C的方法参数传递方式的比较
java中的形参是复制实参的一份拷贝(对于引用类型则是复制引用的拷贝,在栈中的拷贝),所以在函数中改变形参是无法改变实参的值的,改变引用只是将形参所代表的引用指向另外的新的对象,而实参的引用还指向原来 ...
- java自制缓冲池_java String 缓冲池概念的举例说明
口试中常会碰到String对象构造的题目.例如String s= new String("a");创建了几个对象. 下面根据代码具体解释一下各种String构造情况. 代码如下: ...
- Java如何封装参数_java规范(一)------方法设计---返回多参数的方法怎么封装
假如我们有2个变量count和content需要经过一个方法里改变它的值我们可以用下面的方法: main{ int count=0; String content=""; chan ...
最新文章
- Magento(麦进斗)安装问题
- 质量糟糕的代码会在项目中像病毒一样传播,尽量在源头控制好代码质量、强调范例的重要性...
- js 连接mysql_JS连接数据库
- JUnit与EasyMock合作
- 30号晚直播丨数据操作加速器,CloudQuery v1.3.5 发布!
- 【华为云技术分享】直播回顾丨激发数据裂变新动能,HDC.Cloud云数据库前沿技术解读
- JSP和Servlet互相传输数据的过程中产生的乱码问题及解决方案(没有使用AJAX的情况)...
- socket与TCP/UDP编程-转
- 转:Gulp使用指南
- 综合评价法——秩和比(RSR)
- java学术论文_java毕业设计论文-学术参考网
- %date~0,4%和 %time~0,2%等用法详解
- python k线形态识别_K线形态及识别要点大全
- 一个清华保送生妈妈对竞赛的感受,自主招生家长都要看看!
- python实现微信自动回复机器人+查看别人撤回的消息(部署到云服务器)
- pyecharts官网
- 社交网络——一部急风骤雨般的电影
- 数据结构学习笔记(7.查找 8.排序)
- 十一、HTML常用标签
- springboot项目添加了logback-spring.xml配置文件不生效
热门文章
- sdram trp_TRP的完整形式是什么?
- kadane算法_使用KADANE的算法求最大子阵列和
- 计算机考研985院校不歧视,考研最不歧视的985大学有哪些
- 语言中的petchar运用_还在担心你家孩子发音、语言问题?12个表现、3个预防是重点...
- 非导向传输媒体| 计算机网络
- Java CharArrayReader mark()方法与示例
- 怎样让VB6程序只能运行一次
- oracle应收模块核销点不上,详解EBS接口开发之应收款处理
- c++导出标准win32格式的dll
- Shiro授权流程图