java 格式化 布尔型_Java基础篇(1)-格式化

本文目录:

十进制数字格式化——DecimalFormat

数字格式化基类——NumberFormat

字符串格式化类——String.format()

Linux输出格式化——printf

1. 十进制数字格式化(DecimalFormat)

decimal是对数字进行格式化,比如取2位小数,这是最常见的。Java提供了DecimalFormat类,可以快速的将数字格式化为需要的样子。

DecimalFormat类主要靠#和0两种占位符来指定数字长度。

0表示如果位数不足,则以0填充,若是位数足够,则正常显示位数;

#表示如果位数不足,则该位不显示。

bf80d3ffc64f?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

DecimalFormat中0和#的区别

bf80d3ffc64f?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

DecimalFormat参数的含义

源代码测试

bf80d3ffc64f?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

DecimalFormat数字格式化

2. NumberFormat数字格式化

NumberFormat是所有数字格式的抽象基类。该类提供格式化和解析数字的接口。而DecimalFormat是NumberFormat的直接子类。

3. String格式化

开发的时候,一段字符串的中间某一部分是需要可变的。我们就需要用到了String.format来填充内容。

3.1 需要的API(String.format)

String.format()字符串常规类型格式化的两种重载方式

format(String format, Object… args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。

format(Locale locale, String format, Object… args) 使用指定的语言环境,制定字符串格式和参数生成格式化的字符串。

3.2 format的格式类型

转换符

详细说明

示例

%s

字符串类型

"小胖学编程"

%c

字符类型

'm'

%b

布尔类型

true

%d

整数类型(十进制)

88

%x

整数类型(十六进制)

FF

%o

整数类型(八进制)

77

%f

浮点类型

8.888

%a

十六进制浮点类型

FF.35AE

%%

百分比类型

%(%特殊字符%%才能显示%)

2.3 源码及测试结果

bf80d3ffc64f?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

测试代码及结果

3.4 String.format的高级功能

标志

详细说明

示例

结果

+

为正数添加符号

("%+d",15)

+15

0

数字前面补0(加密常用)

("%04d",99)

0099

空格

整数之前添加空格

("% 4d", 99)

99

,

以“,”对数字分组(常用显示金额)

(“%,f”, 9999.99)

9,999.990000

(

使用括号包含负数

(“%(f”, -99.99)

(99.990000)

3.5 源码及测试结果

bf80d3ffc64f?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

源码及测试结果

4. Linux的输出格式化命令-printf

printf命令的语法:printf "指定的格式" "文本1" "文本2" "文本3";

bf80d3ffc64f?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

printf命令详解

正如下图,每一个“文本”都会被当做参数传递到printf命令,而每一个传入的参数都会按照指定的"格式"被"格式化"。

bf80d3ffc64f?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

%s是格式替换符,代替每一个传入的参数。所以我们指定的格式变成了abc\n def\n sss\n aaa\n。

我们可以根据传入的参数不同,使用不同的“格式替换符”去替换

格式替换符

详细说明

%s

字符串类型

%f

浮点类型(也就是float或double)

%b

相对应的参数包含了转义字符,使用该替换符时对应的转义字符会被转义

%c

ASCII字符,显示相对应参数的第一个字符

%d,%i

显示对应参数的第一个字符

%o

不带正负号的八进制值

%u

不带正负号的十进制值

%x

不带正负号的十六进制值,使用a-f表示10-15

%X

不带正负号的十六进制值,使用A-F表示10-15

%%

表示"%"本身

对应的转义字符:

转义字符

详细说明

\a

警告字符,通常为ASCII的BEL字符

\b

后退

\f

换页

\n

换行

\r

回车

\t

水平制表符

\v

垂直制表符

\

字面意义上的反斜杠字符,即\本身

例子:(1)为传入的每个参数添加一对“括号”

[root@XXXXXX etc]$ printf "{%s}" abc def;echo ""

{abc}{def}

多格式替换符

bf80d3ffc64f?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

多个格式替换符

我们所指定的“格式”中所包含的“格式替换符”的数量,就代表每次格式化参数的数量。上图中,指定的“格式”中包含两个“格式替换符”,那么每次printf进行“格式化”操作时,就传入两个参数。

bf80d3ffc64f?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

传入三个格式替换符

输出格式的宽度

在"格式替换符"中间加上特定的数字。比如"%10s"中间的10表示当前替换符对应的输出宽度为10个字符宽,如果输出不足10个字符,则用空格补全。而这些数字我们称为“修饰符”,即对替换符进行修饰。

如何进行左对齐?只要在原来的修饰符前面加上"-","-"表示左对齐,默认不加"-"表示右对齐。

[root@XXXXXX etc]$ printf "{%10s}" abc def;echo ""

{ abc}{ def}

[root@XXXXXX etc]$ printf "{%-10s}" abc def;echo ""

{abc }{def }

bf80d3ffc64f?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

设置格式的宽度

还有一种修饰符"+"

注意:"+"可不是代表右对齐,不加修饰符"-"时,默认是右对齐,那么"+"修饰符什么意思呢?

bf80d3ffc64f?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

+修饰符的作用

当替换符对应的参数为数字时,可以使用+修饰符是为了给正数添加+号。

(敲黑板,划重点)到现在为止,我们接触了3个修饰符了。需要注意的是:(1)数字:输出当前替换符对应的输出宽度,默认右对齐;(2)-:修改对齐方式为左对齐;(3)+:为正数添加+符号;

数字修饰符的特殊用法

[root@XXXXXX etc]$ printf "%-12.3f\n" 19

19.000

[root@XXXXXX etc]$ printf "%-12.3d\n" 19

019

[root@XXXXXX etc]$ printf "%-0.3f\n" 19.1230

19.123

[root@XXXXXX etc]$ printf "%-0.3s\n" 19.1230

19.

修饰符作为正数我们知道,就是输出的宽度;

但是作为小数时:

当替换符为%f时,如果数字修饰符带有小数,则数字修饰符小数点后的数字表示对应的小数精度;

当替换符为%d时,如果数字修饰符带有小数,则数字修饰符后的小数表示整数的长度,长度不够时,高位用0补全;

当替换符为%s时,如果数字修饰符带有小数,则是截取字符串的长度;

参考文章:

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

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

相关文章

一旦有辞职念头就干不长了吗_每天都有辞职不想上班的冲动,你有吗?

我从大学毕业到今天,工作的时间将近10年了。直到现在,我还经常有辞职的想法。我觉得现在职场真的不好混,不如意的事情十之八九,有了辞职冲动是非常正常的,不必一上来就刻意的否定,或者克制。依照我的职场经…

mysql 序号_脚本搭建Nginx、Redis、MySql、Maven

当你面对一个全新的Linux系统时,是如何部署搭建项目环境呢?是否是一个一个软件安装呢?小编在往期文章中介绍了相关软件的安装方法,但是你是否发现不同的软件安装下来是否会出现问题呢?今天就教大家如何使用脚本一键安装…

mysql数据库子查询的使用_MySQL数据库使用子查询方式更新数据优化及思考

【环境介绍】云数据库MySQL 5.7【背景描述】业务需要:需要对16370077的表数据进行更新部分数据操作UPDATE P_MOXXXX_REXXXX SET FISAVAILABLE 1 WHERE FREG_ID IN (SELECT FREG_ID FROM P_MOXXXX_REXXXX_UPDATE_TEMP);【按照正常流程更新数据操作】使用archery的SQ…

业务中台建设与应用_容易网业务中台建设,助力企业数字化转型

“中台”这个概念自去年流行以来,至今仍然搅动着市场。期间,既有阿里、腾讯、百度、字节跳动、美团、滴滴等等头部互联网企业刮起的转型风,也有茅台延后中台签约、服装品牌CIO被开除等风波。尽管存在争议,但这不影响越来越多的企业…

java由大到小输出整数xvz_【视频+图文】Java经典基础练习题(三):输入3个整数,并将其由小到大输出...

java经典实例书店书畅想畅销书109.6元包邮(需用券)去购买 >目录https://www.cnblogs.com/Qpgshare/p/12588923.html一、视频讲解https://www.cnblogs.com/Qpgshare/p/12588923.html二、思路分析https://www.cnblogs.com/Qpgshare/p/12588923.html总结:https://ww…

压力测试过负载均衡_性能测试的方法有哪些?

压力测试:压力测试的关键字就是“极端”。通过对系统的极端加压,从而观察系统的所表现出来性能问题。再对此性能问题进行分析,从而达到系统优化的目的。所以压力测试就是一定要让系统出问题,如果系统没有出问题,那么压…

java比ios慢_Android为什么比iOS慢

有些人会觉Android应用没有iOS应用使用得流畅,我觉得主要原因有以下几点:第一,因为Android平台相较于iOS起步晚,平台不成熟,初期的开发者水平也有限,没有很关注性能优化,只是想做出可用的应用&a…

output怎么用_如何用 C++ 写一个可编程软件渲染器?

今天你想用最新的 D3D12 画一个三角形,少说也要上千行代码了,对于初学者来讲,这个门槛是非常高的,太多干扰了,而一千多行代码,已经足够你重头实现一个简易版 D3D 了,为什么不呢?比起…

mysql delete语句_MySQL ------ 触发器(TRIGGER)(二十七)

MySQL 语句在需要时被执行,存储过程也是,但是你要是想要某条(或某些语句)在事件发生时自动执行,该怎么办触发器由此而来触发器:某个表发生更改时自动处理。触发器是MySQL响应delete,insert&…

创建时间指定日期 java,Java避坑之如何创建指定时间Date对象

在翻看自己以前写的惨不忍睹的代码时,发现了自己曾经写的一个跟Date有关的坑。Date date new Date(2020, 1, 1);System.out.println(date);我的目的是想创建一个2020年1月1日的时间对象date,但是我们创建的date真的就代表2020年1月1日吗?错&…

pagerank数据集_从数据结构到算法:图网络方法初探

机器之心原创作者:朱梓豪编辑:Qing Lin如果说 2019 年机器学习领域什么方向最火,那么必然有图神经网络的一席之地。其实早在很多年前,图神经网络就以图嵌入、图表示学习、网络嵌入等别名呈现出来,其实所有的这些方法本…

php curl上传文件返回false,php curl上传文件$_FILES为空的问题

PHP 5.0~5.6 各版本兼容的cURL文件上传最近做的一个需求,使用PHP cURL上传文件。踩坑若干,整理如下。不同版本PHP之间cURL的区别PHP的cURL支持通过给CURL_POSTFIELDS传递关联数组(而不是字符串)来生成multipart/form-data的POST请求。传统上,…

netty 客户端断开 异常处理_netty案例,netty4.1基础入门篇八《NettyClient半包粘包处理》发数据方式》...

小傅哥 | https://bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获。专注于原创专题案例编写,目前已完成的专题有;Netty4.x实战专题案例、用Java实现JVM、基于JavaAgent的全链路监控、手写RPC框架、架构设计专题案例、源码分析等。你…

Java Windows注销用户,中止Windows从Java注销

EDIT2对于那些跟随讨论的人,我留下了我的第一个答案,但似乎他们没有工作。首先找到我的真正解决方案好吧,所以我认为这实际上有效,但它并不完全可以接受,因为它使用了受限制的API部分(但它自Java 1.3以来就存在并且仍然…

MySQL和mq一致性,Mysql与Redis一致性问题

缓存一致性产生背景如果每次频繁的访问数据库的时候,虽然查询底层使用B树索引 但还会做磁盘的IO操作,可能会对数据库的压力非常大。所以为了能够减轻数据库的访问压力,会使用一些缓存实现减轻数据库的压力。比如 Redis、es、ehcache、oscache…

clustalw序列比对_序列比对(二)

Homology is the central concept for all of biology.——David Wake. Science, 1994前言正如前面引用的这句话,同源性是生物学中的核心问题。研究序列的同源性问题,就要用到序列比对的工具,上一篇笔记简单介绍了序列比对的原理,…

pr渲染程序选哪个_PR的bug你遇到过几个?

哈喽 大家好呀 我是K同学!对于Pr的用户来讲,Pr有很多BUG让人很奔溃,不仅Pr奔溃了,人都奔溃了作为Pr的老用户,今天我就来盘点下,我遇到过Pr的变态BUG第一个Pr不支持微软输出法这是我使用Pr遇到的第一个BUG&a…

java model 中文乱码,java传值乱码解决方法

在做JavaWeb时,总是时不时的会遇到中文传值乱码问题,在你把所有”ISO-8859-1”改成“UTF-8”发现还是没什么用。于是我就找到了一个百试百灵的方法(至少目前我是),就是强行转换成“UTF-8”编码。看代码:RequestMapping("/suc…

检查一列数据的重复项 vba_提取重复值,但字典不是重点。

本例的问题描述:1:源数据与提取的结果在同一个工作表里面;2:提取K、M、O、Q列里面不重复的数据(注意,数据列里面有空白的行);3:把提取出来的结果放在A2单元格的下方,不能有空白行&am…

swiper怎么让不会回弹,为什么我的滚动条拉上拉下都会回弹呢?

其它都是正常的,就是拉上去拉下来自己又回弹回去了,拉不到最底部也拉不到最顶部,拉来拉去都会是这样的category/index.vueimport CategoryHeader from "./header";import CategoryTab from "./tab";import CategoryConte…