formatter java_Java编程中的Java Formatter是什么?

Java编程中的Java Formatter是什么?

作者:admin

分类:PHP, JAVA, .NET文章

时间:2017-03-30 21:13:02

点击量:1428

Java Formatter是一个实用程序类,可以在Java中使用格式化流输出时使生存变得简单。 它的构建类似于C / C ++ printf函数。 它用于将数据格式化并输出到特定目的地,例如字符串或文件输出流。 本文探讨了这个类,并说明它在Java日常编程中的一些用途。

概述

Java Formatter类在java.util包中被定义,并被声明为final。 因此,它不能被扩展或分类。 Formatter类实现了Closeable和Flushable接口。 从Closeable接口派生的close()方法是由这个类定义的,以释放任何被保存的资源,例如打开的文件,流等。 并且,调用从Flushable接口派生的flush()方法将缓冲输出写入底层流。

通过printf函数可以显示格式化数据的方法,就像C的printf风格格式化函数一样。 此功能特别适用于将格式化的输出显示到标准输出流。 使用Java的printf样式函数格式化输出是很好的,但Java Formatter类对此实用程序有更远的使用。 在这个类的帮助下,我们可以将格式化的输出发送到其他输出流或设备,如GUI组件或除了标准输出之外的文件。 它提供与printf相同的格式化功能,例如布局对齐,对齐,数字格式,字符串,日期,时间数据和特定于区域设置的输出。 它基本上将二进制数据格式转换成格式化的文本并将其存储到缓冲区中。 它提供一个默认缓冲区,或者我们可以在创建时提供一个缓冲区。

格式化设计

这个类提供了许多重载的构造函数,我们可以在调用期间显式提供一个可附加缓冲区。 可附加接口表示附加有效unicode字符序列和值的对象。 还有其他构造函数,我们可以提供一个File对象,OutputStream对象或者PrintStream对象。 例如,一些常用的构造函数如下:

Formatter(): 它是一个无参数的构造函数用以创建一个Formatter对象。 它运行于由StringBuilder创建的默认缓冲区。 它是所有类型的常用构造函数。

格式化器(可附加a): 在此,Appendable对象特指格式化输出的缓冲区。 但是,如果值为空,则该对象自动创建一个Stringbuilder来保存格式化的输出。

格式化器(可附加a,区域设置loc): 区域设置对象根据指定的区域设置区分输出格式。 如果未指定,则使用默认区域。 有时,需要根据地理政治或文化敏感数据来定制输出,例如格式化日期和时间,替换一个特定区域的小数分隔符等的区域设置。

格式化器(File文件): 该构造函数的file参数指定一个对要输出打开文件的引用。

一旦格式化对象被创建,它可以以许多方式使用。 格式说明符指定数据格式化的方式。 有关它们的完整文档,请参阅Java API文档。 一些常见的格式说明符是:

%S or %s: Specifies String

%X or %x: Specifies hexadecimal integer

%o: Specifies Octal integer

%d: Specifies Decimal integer

%c: Specifies character

%T or %t: Specifies Time and date

%n: Inserts newline character

%B or %b: Specifies Boolean

%A or %a: Specifies floating point hexadecimal

%f: Specifies Decimal floating point

一般,字符和数字类型的格式说明符应用应符合如下语法:

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

argument_index是可选的,整数值1 $,2 $,以及代表第一个,第二个参数等等。

可选标志表示修改输出格式的字符。

可选宽度表示要在输出中写入最少字符数。

可选精度表示定义一个浮点值精度的正十进制整数值。

转换不是可选的; 它表示参数数据类型,例如整数的%d,字符串的%s等。

一些简单的例子

Using argument_index

Formatter f=new Formatter();

f.format("%3$3s %2$3s %1$3s", "fear",

"strengthen", "weakness");

System.out.println(f);

StringBuilder builder=new StringBuilder();

Formatter f=new Formatter(builder);

f.format(Locale.FRANCE,"%.5f", -1325.789);

System.out.println(f);

Formatter f2=new Formatter();

f2.format(Locale.CANADA, "%.5f", -1325.789);

System.out.println(f2);

Regionalize Date

Formatter f3=new Formatter();

f3.format(Locale.FRENCH,"%1$te %1$tB, %1$tY",

Calendar.getInstance());

System.out.println(f3);

Formatter f4=new Formatter();

f4.format(Locale.GERMANY,"%1$te %1$tB, %1$tY",

Calendar.getInstance());

System.out.println(f4);

Using %n and %% Specifiers

Formatter f = new Formatter();

f.format("Format%n %.2f%% complete", 46.6);

System.out.println(f);

结论

虽然Formatter实现了AutoCloseable接口,但是在close()函数的帮助下,特别是处理文件时,关闭Formatter实例较好。 这样就释放了所用资源。 将一个输出格式化到控制台时最好使用printf,因为它会自动使用Formatter与System.out。应该注意的是,Formatter不具有线程安全性。 因此,应谨慎使用多线程访问。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245407.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python计算矩阵方程_python/sympy求解矩阵方程的方法

sympy版本:1.2假设求解矩阵方程AXA2X其中求解之前对矩阵方程化简为(A−2E)XA令B(A−2E)使用qtconsole输入下面程序进行求解In [26]: from sympy import *In [27]: from sympy.abc import *In [28]: AMatrix([[4,2,3],[1,1,0],[-1,2,3]])In [29]: AOut[29]:Matrix([[ 4, 2, 3],[…

java web 注册登录_javaweb实现登录注册功能实例

前期呢,我们学习了javaweb项目用JDBC连接数据库,还有数据库的建表功能,今天,我们来看一下javaweb实现登录注册功能实例,javaweb项目使用的工具是eclipse,最后把项目部署在了Tomcat中,连接数据库…

source insight 函数不能跳到definition_小技能: Windows10突然不能复制粘贴谁搞鬼

最近连续遇到几次,电脑突然不能复制粘贴了,非常影响工作。(如果不想听我扯,就直接跳到最后看结果啊,我真贴心。)你们都懂得,程序员嘛,用的最多的就是ctrlc,ctrlv。这不能用了,不是让…

flip java_java的flip(). 这里用flip()有什么作用?这是反转缓冲区的方法,好像用不上。...

publicclassNServer{//用于检测所有Channel状态的SelectorprivateSelectorselectornull;staticfinalintPORT30000;privateCharsetcharsetCharset.forName("UTF-8");publicvoidinit(...public class NServer{// 用于检测所有Channel状态的Selectorprivate Selector se…

hsv 明度的范围_通过HSV转换的方式实现图片数据增强

在我的上一篇文章中,我记录了自己将MOT17-Det数据集转换成VOC格式:HUST小菜鸡:将MOT17-Det数据集转成VOC格式​zhuanlan.zhihu.com但是在后期的测试过程中,发现了一些小问题:首先是train.txt里面写入的图片数和标注的数…

java数组如何相加_java数组排序,并将数组内的数据求和

java数据编列并求和,江湖我狼哥,人狠话不多,直接上代码!import java.util.Arrays;public class Intarry {public static void main (String[] args){//定义一个数组int intarry[] {20,30,40,10};int num0;Arrays.sort(intarry);/…

python在工厂中的应用_什么是工厂函数?Python 中工厂函数怎么理解?

其实谈工厂函数前必须首先把嵌套作用域和闭包讲清楚python有一个很有意思的地方,就是def函数可以嵌套在另一个def函数之中。调用外层函数时,运行到的内层def语句仅仅是完成对内层函数的定义,而不会去调用内层函数,除非在嵌套函数之…

java protected关键字_Java 权限protected关键字纠正

以前一直认为自己理解了Java四种权限访问,昨天突然编程时发现protected居然在子类中不能调用,然后越看越迷糊??????public: Java语言中访问限制最宽的修饰符,…

老版本fortran语言 内存无效_编程语言的分类

编程语言世代第一代和第二代语言又称低级语言(Low-level language),其余被视为高级语言(High-level language)第一代编程语言即机器语言,由0和1构成,通过面板、打孔带或者打孔卡输入。第二代编程…

金融统计分析python论文_比较好写的本科金融专业论文题目 本科金融专业论文题目怎么取...

为论文写作提供【100道】比较好写的本科金融专业论文题目,海量本科金融专业相关论文题目,包括专科与本科以及硕士论文题目,解决您的本科金融专业论文题目怎么取的相关难题!一、比较好写的本科金融专业论文题目:1、微观金融视角下财务管理专业应用型本科人才培养目标…

互联网java常用框架_来,带你鸟瞰 Java 中4款常用的并发框架!

1. 为什么要写这篇文章几年前 NoSQL 开始流行的时候,像其他团队一样,我们的团队也热衷于令人兴奋的新东西,并且计划替换一个应用程序的数据库。 但是,当深入实现细节时,我们想起了一位智者曾经说过的话:“细…

2020亚太杯数学建模_比赛 | 2020年APMCM亚太地区大学生数学建模竞赛

2020年11月26日到30日,在我院老师指导下,由统计分析竞赛社组织的41支队伍,共123人,参加了亚太地区大学生数学建模竞赛组委会主办的大学生学科类竞赛。此次竞赛题目分为A题和B题,参赛者需从A,B两题中任选其一…

java声明复数类_JAVA声明复数类

声明复数类,成员变量包括实部和虚部,成员方法包括实现由字符串构造复数、复数加法、减法,字符串描述、比较相等等操作。虽然我只是一个刚学一个月JAVA的菜鸡,但是强迫症让我把复数乘法和除法一起写出来了。public class Complex {…

python接口测试非json的断言_荐在接口自动化测试中,如何利用Pytest + JSONPath 进行接口响应断言...

之前有一篇文章,介绍了如何使用JSONSchema对接口响应进行断言,主要的适用场景是对响应的数据结构进行校验,保证客户端收到的数据结构稳定和合法。今天,介绍使用JSONPath对接口响应的值进行断言方法。上一篇文章《在接口自动化测试…

python3中异常处理_python中的五种异常处理机制介绍|python3教程|python入门|python教程...

https://www.xin3721.com/eschool/python.html从几年前开始学习编程直到现在,一直对程序中的异常处理怀有恐惧和排斥心理。之所以这样,是因为不了解。这次攻python,首先把自己最畏惧和最不熟悉的几块内容列出来,里面就有「异常处理…

java static 单例模式_Java 单例模式全面学习

介绍什么是单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点解决什么问题:省略创建对象所花费的时间,不需要频繁创建对象,减轻 GC 压力。单例模式有以下几种实现方式:懒汉式第一次使用的时候…

sql 没有调试 菜单_MySQL递归查询上下级菜单

正文在传统的后台管理系统里面经常会需要展示多级菜单关系,今天我们来学一下如何使用一条SQL语句展示多级菜单。现在我们有一张corpinfo单位表,里面有一个belong字段指向上级单位,首先来看一下现在表里有什么数据:SELECT uid,ubel…

java 桥 word_java导出word的6种方式(转发)

最近做的项目,需要将一些信息导出到word中。在网上找了好多解决方案,现在将这几天的总结分享一下。目前来看,java导出word大致有6种解决方案:1:Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构…

python删除指定天数前的文件_python 删除指定时间间隔之前的文件实例

遍历指定文件夹下的文件,根据文件后缀名,获取指定类型的文件列表;根据文件列表里的文件路径,逐个获取文件属性里的“修改时间”,如果“修改时间”与“系统当前时间”差值大于某个值,则删除该文件。#!/usr/b…

jieba 词典 词频_在Hanlp词典和jieba词典中手动添加未登录词

在使用Hanlp词典或者jieba词典进行分词的时候,会出现分词不准的情况,原因是内置词典中并没有收录当前这个词,也就是我们所说的未登录词,只要把这个词加入到内置词典中就可以解决类似问题,如何操作呢,下面我…