java stringformatter_Java 字符串格式化 —— java.util.Formatter
标签:
java.util.Formatter是JDK1.5新增的类,支持类似C中的printf风格的字符串格式化工作
Formatter有4个构造方法,如下:
public Formatter()
public Formatter(Appendable a)
public Formatter(Locale l)
public Formatter(Appendable a, Locale l)
构造方法主要用于设置Formatter的缓冲器和Locale,默认的情况下,Formatter使用StringBuilder作为缓冲器,使用Locale.getDefault()作为locale。
Formatter的使用方法如下(摘自JDK DOC):StringBuilder sb = new StringBuilder();
// Send all output to the Appendable object sb
Formatter formatter = new Formatter(sb, Locale.US);
// Explicit argument indices may be used to re-order output.
formatter.format("%4$2s %3$2s %2$2s %1$2s", "a", "b", "c", "d")
// -> " d c b a"
// Optional locale as the first argument can be used to get
// locale-specific formatting of numbers. The precision and width can be
// given to round and align the value.
formatter.format(Locale.FRANCE, "e = %+10.4f", Math.E);
// -> "e = +2,7183"
// The ‘(‘ numeric flag may be used to format negative numbers with
// parentheses rather than a minus sign. Group separators are
// automatically inserted.
formatter.format("Amount gained or lost since last statement: $ %(,.2f", balanceDelta);
// -> "Amount gained or lost since last statement: $ (6,217.58)"
例子中,先new一个Formatter对象,然后调用Formatter的format方法,这时Formatter内部的缓冲器就储存了格式化后的字符串,然后可以用toString方法取出。
更为一般的用法是使用String.format,String.format通过Formatter实现字条串格式public static String format(String format, Object ... args) {
return new Formatter().format(format, args).toString();
}
或者在输出流中使用System.out.format("Local time: %tT", Calendar.getInstance());
format方法的主要参数分两部分,格式字符串和可变的格式化参数
格式字符串有一套自己的语法,它由固定文本或者格式描述符组成。描述符的格式如下:%[argument_index$][flags][width][.precision]conversion
argument_index是一个整数,表明使用的参数的位置,例如System.out.format("%d %d", 1, 2); // 输出 1 2
System.out.format("%1$d %d", 1, 2); // 输出 1 1
flags是一组用于修饰输出的字条
width是一个非负的整数,用于指定写到绥中的最小长度
precision是一个非负整数,一般用于指定数字的精度,依赖conversion
conversion必须有值,用于指定参数如何转换
conversion主要有以下几组字符(即可以转换的类型)
‘s‘,‘S‘ 要求参数实现了Formattable,然后调用它的formatTo方法得到结果
‘c‘,‘C‘ 字符
‘d‘ 十进制整数
‘o‘ 八进制整数
‘x‘,‘X‘ 十六进制整数
‘e‘,‘E‘ 科学计数法浮点数
‘f‘ 浮点数
‘t‘,‘T‘ 时间日期
flags主要有以下几种用法
‘-‘ 左对齐
‘#‘ 依赖于conversion,不同的conversion,该flag的含义不一样
‘+‘ 结果带正负号
‘ ‘ 结果带前置空格
‘0‘ 如果结果不满足宽度(width参数)的要求,用0字符填充
‘,‘ 数字会按locale用逗号分割
‘(‘ 负数结果会被括号括起
更详细的资料可以看JDK文档
标签:
java stringformatter_Java 字符串格式化 —— java.util.Formatter相关推荐
- Java-Runoob-高级教程-实例-字符串:13. Java 实例 - 字符串格式化
ylbtech-Java-Runoob-高级教程-实例-字符串:13. Java 实例 - 字符串格式化 1.返回顶部 1. Java 实例 - 字符串格式化 Java 实例 以下实例演示了通过 f ...
- formatter java_Java笔记 - Java中的格式化输出,Formatter类的介绍
本文主要内容 1.System.out.format()格式化方法的介绍(): 2.Formatter类的介绍和使用:初始化需要传入用于输出的介质,如System.out: 3.格式化说明符:form ...
- JAVA json字符串格式化
记录今天遇到的两种: 一.json.parseObject()是将json格式字符串转为实体类. 实体类不用和json字符串里的属性完全相同.json串中没有的属性会被设为null,实体类中没有的属性 ...
- Java中字符串开头,java中如何判断字符串是以什么开头
函数介绍: startsWith()方法用于检测字符串是否以指定的前缀开始. 语法:public boolean startsWith(String prefix, int toffset) 或pub ...
- Java字符串格式化
原文出处:http://blog.csdn.net/lonely_fireworks/article/details/7962171/ 相关阅读 Java基础:String类 Java字符串格式化 J ...
- Java教程:Java定义字符串(2种方式)
Java教程字符串是 Java 中特殊的类,使用方法像一般的基本数据类型,被广泛应用在 Java 编程中.Java 没有内置的字符串类型,而是在标准 Java 类库中提供了一个 String 类来创建 ...
- java 字符串格式替换_[Java] - 格式字符串替换方法
Java 字符串格式替换方法有两种,一种是使用String.format(...),另一种是使用MessageFormat.format(...) 如下: import java.text.Messa ...
- java 输出字符集合里的字_Java基础 -- 字符串(格式化输出、正则表达式)(示例代码)...
一 字符串 1.不可变String String对象是不可变的,查看JDK文档你就会发现,String类中每一个看起来会修改String值的方法,实际上都是创建一个全新的String对象,以包含修改后 ...
- Java字符串格式化详解
在 Java 的 String 类中,可以使用 format() 方法格式化字符串,该方法有两种重载形式: String.format(String format, Object- args) 和 S ...
最新文章
- 【MM模块】 External Services 外部服务
- rest_framework12:多登陆方式与自动签发token/配置过期时间
- [数论]莫比乌斯反演1
- 安卓系统内 的 安卓虚拟机
- Java 中判断一个字符串是否包含另外一个字符串的方法
- 简单理解JSONP的定义及其实现
- python open写入_Python IO操作文件读取和写入、open函数的mode参数、buffering,文件缓冲区...
- Linux Shell编程笔记7 awk的应用
- Python 访问限制 private public
- 设计模式之(Facade)外观模式
- Linux常用监控服务器性能命令 内存 CPU 磁盘
- ROS2初学者教程(Dashing和Eloquent)Windows
- 【iOS】遍历相册照片
- 从0开始安装k8s1.25【最新k8s版本——20220904】
- 煤矿用计算机,计算机技术在煤矿安全生产中应用
- 怎么做接口自动化的?
- iOS开发关于block和局部变量和全局变量
- pycharm+django创建一个搜索网页
- 100内奇数之和流程图_机器视觉基础之工业相机50个常用术语
- 谷歌人工智能责任:技术、人工智能、社会和文化 | Responsible AI at Google Research: Technology, AI, Society and Culture