字符串格式化:Formatter类

java formatter 格式使用 Formatter 格式化输出 基本使用示例 Formatter formatter = new Formatter(); formatter.format("%s的年龄是%d岁,收入是%f,职位是%s", "张三",30,500.5,"研发"); // System.out.println(f.toString()); System.out.println(formatter); formatter.close(); //输出 // 张 阅读详情

本文目录

1 Formatter类

2 格式化说明符

3 其它相关方法

4 相关文章


1 Formatter类

1.1 使用方法

Formatter formatter = new Formatter([destination]);

formatter.format(String format, Object…args);

1.2 使用说明

(1)Formatter构造参数:

若无参数,格式化后的字符串会被存放在一个内部的StringBuffer中,此后,可通过formatter.toString()方法返回格式化后的字符串。

// 无参数构造Formatter对象
Formatter formatter = new Formatter();
// 格式化操作
formatter.format("The result number is %d.", 7);
// 获得格式化后的字符串
String str = formatter.toString();
// 控制台输出内容:The result number is 7.
System.out.println(str);

若有参数,该参数表示要输出的目标位置,可以是一个StringBuffer对象,一个文件,或一个数据流,此后,格式化的字符串将直接输出到指定位置。

// 构造Formatter对象并指向标准输出流
Formatter formatter = new Formatter(System.out);
// 格式化并输出到指定位置(控制台输出内容:The result number is 7.)
formatter.format("The result number is %d.", 7);

(2)format方法参数:

String format

是一个包含格式化说明符的字符串,该字符串指定了整体目标格式,通过格式化说明符进行占位并指定相应位置的内容格式;

Object… args

表示多个参数对象,其内容将依次对应format中的占位符(格式化说明符),根据指定的内容格式填充到指定位置,从而形成一个满足要求的字符串。

2 格式化说明符

2.1 格式

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

2.2 格式说明

(1)argument_index$:指定对应的内容参数位置,默认按照顺序依次对应。

(2)flags:格式控制。

(3)width:区域宽度。

(4).precision:对于浮点型数据,表示显示的小数位数;对于字符串数据,表示显示的字符数量。

(5)conversion:类型转换字符。

2.3 格式控制(flags)

符号作用示例效果
无负号右对齐formatter.format("***%8d***", 1000);***    1000***
有负号“-”左对齐formatter.format("***%-8d***", 1000);***1000    ***
有加号“+”正数前显示正号
负数前显示负号
formatter.format("***%+8d***", 1000);
formatter.format("***%+8d***", -1000);
***   +1000***
***   -1000***
有空格“ ”正数前显示空格
负号前显示负号
formatter.format("***% 8d***", 1000);
formatter.format("***% 8d***", -1000);
***    1000***
***   -1000***
有零“0”使用0填充剩余位置formatter.format("***%08d***", 1000);***00001000***
有逗号“,”每3位数字添加一个逗号formatter.format("***%,8d***", 1000);***   1,000***

2.4 类型转换字符

符号类型示例效果
d整数型(十进制)formatter.format("%d", 1000);1000
o整数型(八进制)formatter.format("%o", 1000);1750
x整数型(十六进制)formatter.format("%x", 1000);3e8
f浮点型(十进制)formatter.format("%f", 1000.0);1000.000000
e浮点型(科学计数)formatter.format("%e", 1000.0);1.000000e+03
b布尔型formatter.format("%b", true);true
c字符型formatter.format("%c", 'A');A
s字符串型formatter.format("%s", "String");String
%字符“%”formatter.format("%d%%", 100);100%

2.5 时间类型转换字符

符号类型示例效果
tC上世纪formatter.format("%tC", calendar);20
tY年(4位)formatter.format("%tY", calendar);2017
ty年(2位)formatter.format("%ty", calendar);17
tm月formatter.format("%tm", calendar);11
tB月份formatter.format("%tB", calendar);November
tb月份缩写formatter.format("%tb", calendar);Nov
td日(2位)formatter.format("%td", calendar);20
te日formatter.format("%te", calendar);20
tA星期formatter.format("%tA", calendar);Monday
ta星期(缩写)formatter.format("%ta", calendar);Mon
tH小时(24小时制)(2位)formatter.format("%tH", calendar);18
tk小时(24小时制)formatter.format("%tk", calendar);18
tI小时(12小时制)(2位)formatter.format("%tI", calendar);06
tl小时(12小时制)formatter.format("%tl", calendar);6
tM分钟formatter.format("%tM", calendar);10
tS秒formatter.format("%tS", calendar);22
tL毫秒formatter.format("%tL", calendar);490
tN微秒formatter.format("%tN", calendar);570000000
tp上午/下午formatter.format("%tp", calendar);pm
tz时区formatter.format("%tz", calendar);+0800
tZ时区(缩写)formatter.format("%tZ", calendar);CST
ts自1970-01-01 00:00的秒数formatter.format("%ts", calendar);1511172687
tQ自1970-01-01 00:00的毫秒数formatter.format("%tQ", calendar);1511172687297
tFYYYY-MM-DDformatter.format("%tF", calendar);2017-11-20
tDMM/DD/YYformatter.format("%tD", calendar);11/20/17
tRHH:MM(24小时制)formatter.format("%tR", calendar);18:11
tTHH:MM:SS(24小时制)formatter.format("%tT", calendar);18:11:27
trHH:MM:SS 上午/下午formatter.format("%tr", calendar);06:11:27 pm
tc星期 月 日 HH:MM:SS YYYYformatter.format("%tc", calendar);Mon Nov 20 18:11:27 CST 2017

3 其它相关方法

3.1 String.format方法

该方法内部,实际上也是通过Formatter类进行格式化,然后,将格式化后的字符串返回,其内部代码如下:

public static String format(String format, Object... args) {
   return new Formatter().format(format, args).toString();
}

3.2 System.out.format方法

该方法内部,也是通过Formatter类进行格式化,然后,将格式化后的字符串直接输出到System.out输出流,其内部代码如下:

public PrintStream format(String format, Object ... args) {
    try {
        synchronized (this) {
            ensureOpen();
            if ((formatter == null)
                || (formatter.locale() != Locale.getDefault()))
                formatter = new Formatter((Appendable) this);
            formatter.format(Locale.getDefault(), format, args);
        }
    } catch (InterruptedIOException x) {
        Thread.currentThread().interrupt();
    } catch (IOException x) {
        trouble = true;
    }
    return this;
}

4 相关文章

《Java 8 日期、时间与格式化》

python:自定义字符串格式化 阅读详情

相关推荐

解析Java中1000个常用类:Formatter类,你学会了吗?

Formatter类位于java.util包中,是一个用于生成格式化输出的工具类。它提供了对字符串、数字、日期等多种类型的格式化支持。// 构造方法和主要方法省略通过实现接口,可以自定义对象的格式化行为。

良月柒 1212

formatter是什么?

element里面表格的一个属性 formatter 叫格式化内容的

fan023211的博客 5146

在 Windows 上安装 OpenCV – C++ / Python

而且,安装并不是一件容易的事。这些安装程序仅适用于安装 OpenCV for C++。如果您想安装适用于 Python 的 OpenCV,您将在博客后面找到相关信息。在这篇博文中,我们将在 Windows 上安装适用于 C++ 和 Python 的 OpenCV。C++ 安装是在自定义安装 exe 文件的帮助下完成的。而Python的安装是通过Anaconda完成的。从源代码安装 OpenCV 需要花费大量时间。根据您的硬件和安装配置,该过程可能需要 5 分钟到 2 小时不等。

Demondai999的博客 2091

java stringformatter_Java基础扫盲系列(-)—— String中的format

Java基础扫盲系列(-)—— String中的format以前大学学习C语言时,有函数printf,能够按照格式打印输出的内容。但是工作后使用Java,也没有遇到过格式打印的需求,今天遇到项目代码使用String.format()工具api。这里完善知识体系,将Java中的formatter简单的总结下。An interpreter for printf-style format strings...

weixin_42514930的博客 1669

无线控制的隐形桥梁:深入解析NRF24L01在电机控制中的数据传输艺术

本文深入解析NRF24L01无线模块在电机控制中的数据传输技术,涵盖通信机制优化、抗干扰策略及实时性保障。通过舵机和无刷电机的实战案例,展示如何构建稳定高效的无线控制系统,为嵌入式开发提供完整解决方案。

j7k8l的博客 333

ffmpeg(一) ffmpeg+QT开发环境搭建

(exe 程序编译的时候只需要包含 xxx.dll.a 静态导入库,运行的时候才需要 xxx.dll 文件)这个 .pro 文件的配置,是指导程序编译的时候,可以找到对应的动态库。值得一提的是,在Windows中,静态链接库(Static Link Library)的扩展名也是.lib、.dll.a。其实只要你掌握了FFmpeg,也可以很快上手其他音视频开发库,因为底层原理都是一样的,你最终操作的都是一样的数据,比如MP3、MP4文件。导入库:不包含函数的具体实现代码(函数的具体实现代码存储在dll中)

小道士写程序 8204

String.format函数使用方法介绍

        在JDK1.5中,String类增加了一个非常有用的静态函数format(String  format, Objece...  argues),可以将各类数据格式化为字符串并输出。其中format参数指定了输出的格式,是最复杂也是最难掌握的一点,而argues则是一系列等待被格式化的对象。该函数对c语言中printf函数的用法进行了一定的模仿,因此有c语言基础的人学起来会轻松许多。

华丽的痘痘 3万+

QT实现Word读写

在windows环境下,我们可以通过ActiveQt实现Office自动化,相当于VB的VBA功能。 以下是一个实例: #include #include #include int main(int argc, char *argv[]) {     QApplication a(argc, argv);     //显示的打开一个word应用程序     QAxW

nameofhsw的专栏 1万+

Java字符串的格式化与输出

Java字符串的格式化与输出 在C语言中格式化输出能够通过printf()函数实现,在Java中无需借助第三方工具相同能够实现此功能。自Java SE5后,java也提供了C语言中printf()风格的格式化输出方法。眼下,有三种方法实现格式化输出,參考例如以下: 一、格式化输出的三种方法 1.System.out.format() Java SE5引入的format方法能够用于P...

weixin_34122604的博客 140

基于YOLOv8的视频监控违规停车智能识别系统与应用研究

通过这个毕设,你已经从数据准备、模型训练到界面开发,完整走了一遍深度学习项目的流程。把多个停车场的监控数据整合起来,做一个区域级的停车管理平台;加入车牌识别功能,直接定位到违规车辆的车主;试试把YOLO模型再优化一下,让它在手机端也能运行,实现移动巡检。相信我,按照这个教程一步步做,你的毕设不仅能顺利完成,还能做出亮点,让答辩老师眼前一亮。要是过程中遇到什么问题,随时可以再琢磨琢磨,或者找我聊聊,咱们一起把这个毕设做成精品。

LXY_LOVE36的博客 118

基于Python的新闻聚合与推荐系统:抓取多新闻网站内容并根据用户兴趣进行个性化推荐

本文介绍了如何使用Python构建一个新闻聚合与推荐系统,涵盖了从新闻数据抓取、用户兴趣建模到推荐算法实现的全过程。通过爬虫技术抓取新闻网站内容,使用TF-IDF、Word2Vec等算法进行内容分析,并通过推荐算法向用户推送个性化的新闻,最终帮助用户快速获取自己感兴趣的信息。你可以根据具体需求,进一步扩展和优化系统。例如,加入更多的推荐算法、优化爬虫的抓取效率、增强前端展示的互动性等。通过本文的指导,您应该能够构建一个完整的新闻聚合与推荐系统,并为用户提供个性化的新闻推荐服务。

2201_76125261的博客 1515

Java中用三种方法输出字符串,Java字符串的格式化与输出

Java字符串的格式化与输出在C语言中格式化输出可以通过printf()函数实现,在Java中无需借助第三方工具同样可以实现此功能,自Java SE5后,java也提供了C语言中printf()风格的格式化输出方法。目前,有三种方法实现格式化输出,参考如下:一、格式化输出的三种方法1.System.out.format()Java SE5引入的format方法可以用于PrintStream或Pri...

weixin_34219634的博客 2780

直驱风机并网系统次同步振荡机理与振荡源定位方法研究

摘要: 本文针对直驱风机并网系统次同步振荡问题,研究了其产生机理与振荡源定位方法。通过建立系统小信号模型,采用特征值分析法揭示了次同步振荡的产生机制,并分析了电网强度、控制器参数对振荡特性的影响。基于暂态能量流理论,提出了通过计算各元件耗散能量来定位振荡源的方法。在MATLAB/Simulink平台搭建仿真系统验证了所提方法的有效性,为直驱风电场次同步振荡的分析与抑制提供了理论依据。 关键词:直驱风机;次同步振荡;小信号模型;暂态能量;振荡源定位

huanghm88的专栏 102

Java的格式化输出

Java的格式化输出目前分为三种: printf()函数format()函数Formatter类 一. printf()函数和format()函数 这两个函数是等价的,只需要一个简单的格式化字符串,加上一串参数即可,每个参数对应一个格式修饰符 二. Formatter类 未完待续。。。。。

清风徐来,水波不兴 303

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

string类型--字符串常用操作

1、字符串常量 (1)不依赖于语言环境: string.ascii_letters ==>'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' string.ascii_lowercase ==> 'abcdefghijklmnopqrstuvwxyz' string.ascii_uppercase ==> 'ABCDEFG...

卜亚风 1439

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

从头认识java-11.3 格式化输出(1)

这一章节我们来讨论一下格式化输出,这个话题我们将通过几个章节来展开描述。在c语言体系里面,用的最多的估计就是printf这个函数:printf("%d%f",a,b)上面简单的一句,使用了格式化输出,%d表示输出整形数字,%f浮点数。1.System.out.printf和System.out.formatjava继承c语言体系,当然也会有printf之类的函数,我们下面举例:package co

raylee2007的专栏 2116

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

3步搞定fmtlib自定义范围格式化:从痛点到完美输出

fmtlib是一个现代化的C++格式化库,提供了简洁、高效的字符串格式化功能。在C++开发中,我们经常需要格式化各种数据结构,尤其是范围类型如向量、列表等。本文将通过三个简单步骤,帮助你掌握fmtlib的自定义范围格式化技巧,解决格式化范围数据时的常见痛点,实现完美输出。 ## 一、认识范围格式化的痛点 在使用fmtlib进行范围格式化时,开发者常常遇到以下问题: - 默认格式化样式不符合需求

gitblog_00645的博客 477

CPython `string` 模块全解:从 ASCII 常量、Template 到 PEP 3101 格式化体系

`string` 是 CPython 标准库中处理文本的基础模块。它并非简单堆积字符串方法,而是承载了**字符分类常量**、`str.format` 的纯 Python 参考实现 `Formatter`、以及面向 i18n 的 `$`-风格 `Template` 三类能力。本文以 [Doc/library/string.rst](https://link.gitcode.com/i/794b43a

gitblog_00591的博客 217

【python标准库-文本处理服务】string 模块

字符串模块常量、模板字符串、格式化字符串

tester_yangzai的博客 303

C++20中头文件format的使用

C++20中头文件format的使用

网络资源是无限的 1098

Roaster库入门:3个核心API(parse/create/format)让Java代码操作效率提升10倍

Roaster是一个功能强大的Java解析库,它提供了简单易用的API来解析和格式化Java源文件,帮助开发者轻松操作Java代码,显著提升开发效率。无论是解析现有Java文件、创建新的Java类,还是格式化代码,Roaster都能胜任。 ## 为什么选择Roaster库? 在Java开发中,经常需要对Java代码进行解析、生成或格式化操作。传统的方式可能需要手动处理字符串,或者使用复杂的解析

gitblog_00402的博客 1040

python3的formatter_python中的formatter的详细用法

python中的formatter的详细用法

weixin_39777404的博客 1654

python中的formatter的详细用法

今天抽空学习了一下python中的string service中的formatter的相关用法,主要是为了让自己的代码看起来更加和谐,因为很多java或者c语言过来的开发者都不怎么爱使用python的原生的字符串格式化工具,似乎大家都爱用下面的格式化工具 info = 'my name is %s I really enjoy %s' % ('younger', 'python') 现在我要学习使...

weixin_30530339的博客 3051
上一篇: 图解:常用排序算法(冒泡、选择、插入、希尔、快速、归并、堆)
下一篇: 反射
崔显龙
博客等级 码龄15年 95粉丝 64原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值