标签:

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相关推荐

  1. Java-Runoob-高级教程-实例-字符串:13. Java 实例 - 字符串格式化

    ylbtech-Java-Runoob-高级教程-实例-字符串:13. Java 实例 - 字符串格式化 1.返回顶部 1. Java 实例 - 字符串格式化  Java 实例 以下实例演示了通过 f ...

  2. formatter java_Java笔记 - Java中的格式化输出,Formatter类的介绍

    本文主要内容 1.System.out.format()格式化方法的介绍(): 2.Formatter类的介绍和使用:初始化需要传入用于输出的介质,如System.out: 3.格式化说明符:form ...

  3. JAVA json字符串格式化

    记录今天遇到的两种: 一.json.parseObject()是将json格式字符串转为实体类. 实体类不用和json字符串里的属性完全相同.json串中没有的属性会被设为null,实体类中没有的属性 ...

  4. Java中字符串开头,java中如何判断字符串是以什么开头

    函数介绍: startsWith()方法用于检测字符串是否以指定的前缀开始. 语法:public boolean startsWith(String prefix, int toffset) 或pub ...

  5. Java字符串格式化

    原文出处:http://blog.csdn.net/lonely_fireworks/article/details/7962171/ 相关阅读 Java基础:String类 Java字符串格式化 J ...

  6. Java教程:Java定义字符串(2种方式)

    Java教程字符串是 Java 中特殊的类,使用方法像一般的基本数据类型,被广泛应用在 Java 编程中.Java 没有内置的字符串类型,而是在标准 Java 类库中提供了一个 String 类来创建 ...

  7. java 字符串格式替换_[Java] - 格式字符串替换方法

    Java 字符串格式替换方法有两种,一种是使用String.format(...),另一种是使用MessageFormat.format(...) 如下: import java.text.Messa ...

  8. java 输出字符集合里的字_Java基础 -- 字符串(格式化输出、正则表达式)(示例代码)...

    一 字符串 1.不可变String String对象是不可变的,查看JDK文档你就会发现,String类中每一个看起来会修改String值的方法,实际上都是创建一个全新的String对象,以包含修改后 ...

  9. Java字符串格式化详解

    在 Java 的 String 类中,可以使用 format() 方法格式化字符串,该方法有两种重载形式: String.format(String format, Object- args) 和 S ...

最新文章

  1. 【MM模块】 External Services 外部服务
  2. rest_framework12:多登陆方式与自动签发token/配置过期时间
  3. [数论]莫比乌斯反演1
  4. 安卓系统内 的 安卓虚拟机
  5. Java 中判断一个字符串是否包含另外一个字符串的方法
  6. 简单理解JSONP的定义及其实现
  7. python open写入_Python IO操作文件读取和写入、open函数的mode参数、buffering,文件缓冲区...
  8. Linux Shell编程笔记7 awk的应用
  9. Python 访问限制 private public
  10. 设计模式之(Facade)外观模式
  11. Linux常用监控服务器性能命令 内存 CPU 磁盘
  12. ROS2初学者教程(Dashing和Eloquent)Windows
  13. 【iOS】遍历相册照片
  14. 从0开始安装k8s1.25【最新k8s版本——20220904】
  15. 煤矿用计算机,计算机技术在煤矿安全生产中应用
  16. 怎么做接口自动化的?
  17. iOS开发关于block和局部变量和全局变量
  18. pycharm+django创建一个搜索网页
  19. 100内奇数之和流程图_机器视觉基础之工业相机50个常用术语
  20. 谷歌人工智能责任:技术、人工智能、社会和文化 | Responsible AI at Google Research: Technology, AI, Society and Culture

热门文章

  1. 酷睿cpu 计算速度
  2. 用Python斗图,再配上个机器人,Monster Kill !
  3. linux中d4B什么意思,Linux中环境变量文件及配置+++
  4. 移动硬盘恢复数据,一招就能做到
  5. 无线打印机服务器说明书,无线打印机服务器
  6. odoo 图标大小调整
  7. interupt java_基于JDK8总结java中的interrupt
  8. java restful接口开发_利用Java框架实现Restful接口
  9. LeetCode刷题总结文档
  10. [已解决]6-24号更新导致CSGO社区服务器启动闪退问题