- 浏览: 238865 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
zhangzijun1984:
谢谢! 写的很详细
ruby 的数组操作 -
jcdby:
非常棒的文章。我从头看到了尾。但是为什么最后的关键部分不完整呢 ...
javascript 函数对象 -
56553655:
giianhui 写道希望能介绍一下这个类的使用场景,谢谢!看 ...
sun.misc.Unsafe 的使用 -
liuInsect:
为什么 这样就可以访问了呢? 是改变了什么设置吗??? sec ...
sun.misc.Unsafe 的使用 -
softor:
set什么啊?
MySQL 的 source 命令处理中文问题
格式字符串的语法
产生格式化输出的每个方法都需要格式字符串 和参数列表。格式字符串是一个 String,它可以包含固定文本以及一个或多个嵌入的格式说明符。
调用方法
public Formatter format(String format, Object ... args) {
return format(l, format, args);
}
例如
String s = new Formatter().format("%2$-5.2f %1$2s", "123", 456.7).toString();
格式字符串结构
%[argument_index$][flags][width][.precision]conversion
源代码中正则字符串
%(\\d+\\$)?([-#+ 0,(\\<]*)?(\\d+)?(\\.\\d+)?([tT])?([a-zA-Z%])
1.argument_index
可选的 argument_index 是一个十进制整数,用于表明参数在参数列表中的位置。
第一个参数由 "1$" 引用,第二个参数由 "2$" 引用,依此类推。
可选的 flags 是修改输出格式的字符集。有效标志的集合取决于转换类型。
2.flag
下表总结了受支持的标志。y 表示该标志受指示参数类型支持。 标志 常规 字符 整数 浮点 日期/时间 说明
'-' 结果将是左对齐的(后面补充空格),否则(前面补充空格),
与width设置有关 format("%1$-8s", "5689").toString()
'#' 结果应该使用依赖于转换类型的替换形式,
若是OCTAL_INTEGER (8进制),以0开始,
HEXADECIMAL_INTEGER(十进制),以0x开始 format("%1$#x", 5689).toString()
'+' 结果总是包括一个符号 ,对于数字型(d)加入一个正号或负号
format("%1$+d
", 5689).toString()
' '
结果
若是正值,结果中将包括一个前导空格(相当于+)
format("%1$ d
", 5689).toString()
'(' 结果若是负值,则用()括起来
,若没有(属性,负值用-表示
format("%1$(d
", -5689).toString()
'0' 结果用0补充(针对数字形,并且与width设置有关)
format("%1$09d
", -5689).toString()
',' 结果用逗号分隔(数字型d)
format("%1$,d
", -5689).toString()
< 代表前一个引用,即表达式中前一个引用 format("%1$d%1$<d", -5689).toString()
3.width
可选 width 是一个非负十进制整数,表明要向输出中写入的最少字符数。
4.precision
可选 precision 是一个非负十进制整数,通常用来限制字符数。特定行为取决于转换类型。保留小说点
5.conversion
所需的 conversion 是一个表明应该如何格式化参数的字符。给定参数的有效转换集合取决于参数的数据类型。
'b', 'B' 常规 如果参数 arg 为 null,则结果为 "false"。
如果 arg 是一个 boolean 值或 Boolean,
则结果为 String.valueOf() 返回的字符串。否则结果为 "true"。'B' 返回结果是大写
'h', 'H' 常规 如果参数 arg 为 null,则结果为 "null"。
否则,结果为调用 Integer.toHexString(arg.hashCode()) 得到的结果。 'H' 返回结果是大写
's', 'S' 常规 如果参数 arg 为 null,则结果为 "null"。
如果 arg 实现 Formattable,则调用 arg.formatTo。
否则,结果为调用 arg.toString() 得到的结果。'S' 返回结果是大写
'c', 'C' 字符 结果是一个 Unicode 字符 'C' 返回结果是大写
'd' 整数 结果被格式化为十进制整数
'o' 整数 结果被格式化为八进制整数
'x', 'X' 整数 结果被格式化为十六进制整数 'X' 返回结果是大写
'e', 'E' 浮点 结果被格式化为用计算机科学记数法表示的十进制数 'E' 返回结果是大写
'f' 浮点 结果被格式化为十进制数
'g', 'G' 浮点 根据精度和舍入运算后的值, 使用计算机科学记数形式或十进制格式对结果进行格式化。
'a', 'A' 浮点 结果被格式化为带有效位数和指数的十六进制浮点数
't', 'T' 日期/时间 日期和时间转换字符的前缀。请参阅日期/时间转换。'T' 返回结果是大写
'%' 百分比 结果为字面值 '%' ('\u0025')
'n' 行分隔符 结果为特定于平台的行分隔符
日期/时间转换
'H' 24 小时制的小时,被格式化为必要时带前导零的两位数,即 00 - 23。
'I' 12 小时制的小时,被格式化为必要时带前导零的两位数,即 01 - 12。
'k' 24 小时制的小时,即 0 - 23。
'l' 12 小时制的小时,即 1 - 12。
'M' 小时中的分钟,被格式化为必要时带前导零的两位数,即 00 - 59。
'N' 秒中的毫微秒,被格式化为必要时带前导零的九位数,即 000000000 - 999999999。
'L' 秒中的毫秒,被格式化为必要时带前导零的三位数,即 000 - 999。
'Q' 自协调世界时 (UTC) 1970 年 1 月 1 日 00:00:00 至现在所经过的毫秒数,
即 Long.MIN_VALUE 与 Long.MAX_VALUE 之间的差值。
'p' 特定于语言环境的 上午或下午 标记以小写形式表示,例如 "am" 或 "pm"。
使用转换前缀 'T' 可以强行将此输出转换 为大写形式。
's' 自协调世界时 (UTC) 1970 年 1 月 1 日 00:00:00 至现在所经过的秒数,
即 Long.MIN_VALUE/1000 与 Long.MAX_VALUE/1000 之间的差值。
'S' 分钟中的秒,被格式化为必要时带前导零的两位数,即 00 - 60 ("60" 是支持闰秒所需的一个特殊值)。
'T' 24 小时制的时间,被格式化为 "%tH:%tM:%tS"。(24 hour hh:mm:ss)
'z' 相对于 GMT 的 RFC 822 格式的数字时区偏移量,例如 -0800。
'Z' 表示时区缩写形式的字符串。Formatter 的语言环境将取代参数的语言环境(如果有)。
'a' 特定于语言环境的星期几简称,例如 "Sun" 和 "Mon"。
'A' 特定于语言环境的星期几全称,例如 "Sunday" 和 "Monday"。
'b' 特定于语言环境的月份简称,例如 "Jan" 和 "Feb"。
'B' 特定于语言环境的月份全称,例如 "January" 和 "February"。
'C' 除以 100 的四位数表示的年份,被格式化为必要时带前导零的两位数,即 00 - 99。
'd' 一个月中的天数,被格式化为必要时带前导零两位数,即 01 - 31。
'e' 一个月中的天数,被格式化为两位数,即 1 - 31。
'h' 与 'b' 相同。
'j' 一年中的天数,被格式化为必要时带前导零的三位数,例如,对于格里高利历是 001 - 366。
'm' 月份,被格式化为必要时带前导零的两位数,即 01 - 13。
'y' 年份的最后两位数,被格式化为必要时带前导零的两位数,即 00 - 99。
'Y' 年份,被格式化为必要时带前导零的四位数(至少),例如,0092 等于格里高利历的 92 CE。
'r' 12 小时制的时间,被格式化为 "%tI:%tM:%tS %Tp" (hh:mm:ss [AP]M)。
上午或下午标记 ('%Tp') 的位置可能与语言环境有关。
'R' 24 小时制的时间,被格式化为 "%tH:%tM"。(hh:mm same as %H:%M)
'c' 日期和时间,被格式化为 "%ta %tb %td %tT %tZ %tY",例如 "Sun Jul 20 16:17:00 EDT 1969"。
'D' 日期,被格式化为 "%tm/%td/%ty"。(mm/dd/yy)
'F' ISO 8601 格式的完整日期,被格式化为 "%tY-%tm-%td"。
发表评论
-
ruby 中 block 的使用方法
2011-07-18 18:51 1617对包含代码的字符串和block求解。 Ruby提供了多种不同类 ... -
ruby 中的 block
2011-07-18 18:25 9664.2 Blocks and Procs 1)bloc ... -
ruby 的 字符串
2011-07-17 15:56 1277%{String} 用于创建一个 ... -
ruby 中的 catch throw
2011-07-17 11:42 3127使用raise,rescue用来处理出错的情况,同时也可以使处 ... -
ruby 的数组操作
2011-07-17 11:12 12056ruby语言的内置数据结构强大到让我震惊。下面展示了ruby数 ... -
ruby 中的 module_function 关键字
2011-07-17 10:34 1903模块是ruby特有的功能之一。模块和类很像,但和类最大的不同在 ... -
ruby 中的 respond_to 和send 方法
2011-07-16 16:58 1739Ruby中 respond_to? 和 send 的用法 如 ... -
ruby 中的符号
2011-07-16 16:28 14091. "<<" 1) 创建 ... -
ruby 对象的特殊方法
2011-07-16 16:01 1105特殊方法是指某实例所特有的方法。一个对象有哪些行为由对向所属 ... -
ruby 的module 与类
2011-07-16 15:20 2294ruby模块与类 Class类是Module的子类,类是一种 ... -
jvm 默认内存
2011-06-14 11:42 0jvm 默认内存 java版本: java version ... -
rpc的实现 Apache Avro 与 Thrift 比较
2011-04-22 09:41 0http://www.tbdata.org/archives/ ... -
tomcat 启动报错 Cannot assign requested address
2010-12-28 22:35 2309java.net.BindException: Cannot ... -
katta
2010-11-18 20:19 0katta http://jiajiam.spaces.li ... -
zookeeper
2010-11-15 22:47 797http://hupy.iteye.com/blog/4433 ... -
temp
2010-10-26 02:15 0廖总好: 刚刚收到电 ... -
apache 模式模式
2010-09-17 18:06 0http://hi.baidu.com/zhangguansh ... -
wait 实例 关于异常 java.lang.IllegalMonitorStateException: current thread not owner
2010-09-14 11:30 0public class ThreadTest { ... -
java 线程模型
2010-09-02 17:59 0线程 线程(thr ... -
java 架构
2010-09-02 14:03 0aaa
相关推荐
在Java编程中,验证字符串是否符合JSON(JavaScript Object Notation)格式是一项常见的任务,尤其是在进行前后端数据交互时。JSON是一种轻量级的数据交换格式,它允许数据以键值对的形式存储,易于人阅读和编写,...
### JAVA日期与字符串的转换 在Java编程中,经常需要将日期对象转化为字符串形式以便于存储或显示,或者反过来将字符串转化成日期对象来进行日期计算等操作。本文将详细介绍如何在Java中实现这两种转换。 #### 一...
在Java编程语言中,文本字符串替换是一个常见的任务,特别是在处理大量文本数据时。这个"java 文本字符串替换工具"很可能是为了帮助开发者高效地搜索和替换文件中的特定文本内容。让我们详细了解一下如何在Java中...
在Java编程中,有时我们需要将实体类对象转换成XML格式的字符串,这在数据交换、存储或网络传输中非常常见。这个过程通常涉及到对象序列化和XML处理技术。本篇文章将详细讲解如何根据实体类生成XML格式的字符串,并...
本文将围绕“java字符串练习”这一主题,深入探讨如何解析字符串、逆序输出字符串以及处理特定格式的字符串数据。 首先,我们要讨论的是字符串解析。在Java中,我们可以使用`String`类提供的方法或正则表达式来实现...
JSON官网上推荐的使用java解析json的类库,官网下载后的是未编译打包的java文件,这是我打包后的东东,使用时直接添加进Build path即可,简单实用……
检查日期格式字符串是否能转化成日期,字符串可通过new SimpleDateFormat("xxxx");得到日期字符串
根据提供的文件信息,本文将详细解释Java中字符串的不同编码转换方法及原理,并深入探讨每种编码格式的特点。 ### Java字符串的编码转换 在Java中,处理不同字符集之间的字符串转换是一项常见任务。尤其是在处理...
不需要关心接受的字符串编码是UTF_8还是GBK,还是ios-8859-1,自动转换为utf-8编码格式,无需判断字符串原有编码,用法://处理编码String newStr = GetEncode.transcode(oldStr);
### Java解析XML字符串 在给定的代码示例中,我们看到了如何使用JDOM库来解析一个XML字符串,并对其进行操作。下面我们将详细解析这个过程: 1. **初始化XML源**:首先,将XML字符串转化为`StringReader`对象,这...
总之,理解和熟练掌握Java中的字符串操作、正则表达式以及日期时间格式化对于任何Java开发者来说都是必不可少的技能。通过实践和不断探索,你将能够编写出更高效、更优雅的代码来处理字符串相关的任务。
这个方法允许我们根据特定的分隔符将一个字符串分割成多个子字符串,这对于数据解析、格式转换等场景非常有用。在本文中,我们将深入探讨`split()`方法的实践应用。 `split()`方法位于`java.lang.String`类中,它的...
在Java编程中,给字符串编号通常涉及到字符串处理和循环结构的应用。这可能包括在字符串的每个元素前或后添加特定的编号,或者按照特定规则生成编号字符串。以下是一些关于如何在Java中实现这一功能的关键知识点: ...
在Java编程语言中,字符...理解字符串的长度判断和截取是Java编程的基础,它们在实际编程中有着广泛的应用,例如在输入验证、数据处理、格式化输出等场景。熟练掌握这些基本操作,将有助于编写出更加高效和可靠的代码。
- **功能**:使用本地语言环境和指定的格式字符串及参数列表来生成一个新的格式化字符串。 - **参数**: - `format`:一个包含转换符的格式化字符串。 - `args`:一个对象数组,其中的对象将被格式化并插入到...
标题提到的是“java解析json格式字符串所需jar包”,描述指出我们可以自行下载这些库。在提供的压缩包文件中,包含了以下几个关键的jar包: 1. **commons-collections-3.2.1.jar**:这是Apache Commons Collections...
本文将深入探讨Java中的字符串操作,包括创建、比较、拼接、查找与替换、分割以及格式化。 1. 创建字符串: Java中有两种方式创建字符串:通过`new`关键字或使用字符串字面量。 - 使用`new`关键字:`String str =...
在Java编程中,处理数字时,我们经常需要将数字格式化为包含千分位分隔符的字符串,以便于人类阅读。例如,一个大数字123456789.012可能需要转化为"123,456,789.012"的形式。这个过程可以通过使用`DecimalFormat`类...
在Java编程语言中,处理字符串时,了解字符串的编码类型是非常重要的。编码类型决定了字符集,它定义了如何将字符转换为数字(字节)以及如何将数字转换回字符。常见的编码类型有ASCII、ISO-8859-1、UTF-8、GBK等。...
- 使用指定的语言环境、格式字符串和参数返回一个格式化字符串。 2. `String.format(String format, Object... args)` - 使用指定的格式字符串和参数返回一个格式化字符串。 #### 三、格式化字符串的组成部分 ...