当前位置: 首页 > news >正文

【老白学 Java】数字格式化

数字格式化

码老白
文章来源:《Head First Java》修炼感悟。

很多时候需要对数字或日期进行格式化操作,来达到某些输出效果。Java 的 Formatter 类提供了很多扩展性功能用于字符串的格式化,只要调用 String 静态方法 format() ,传入参数并设定格式就可以得到满意的字符串。

一、基本语法

1、方法定义

public static String format(String format, Object... args);

2、 方法参数

  • format 格式字符串,描述如何格式化,必须以格式说明符 % 开始;
  • args 格式字符串中由格式说明符引用的参数。如果还有格式说明符以外的参数,则忽略。这个参数是可变参数,也可以为 0。

3、方法返回值

  • 返回格式化后的字符串。

4、格式字符串

格式化描述

  • %,格式说明符,表示用它后面的格式去格式化对应的原始数据;
  • flags,标识符,例如以逗号分隔数字,或者为数字添加正负号等;
  • width,输出的字符串最小宽度(字符数);
  • precision,输出位数,例如指定小数位数,截取字符个数等;
  • type,数据类型,必须指定。

老白提醒: 以上是完整格式,其中方括号中的选项可以省略,但格式说明符和类型符号不能省略。

二、常用格式设定

  • %d 十进制整数,以逗号分隔,例如:
String.format("%,d", 1000000000);
// 输出结果:1,000,000,000
  • %f,浮点数,默认保留6位小数点(四舍五入),例如:
String.format("%f", 4387.2983749872);
// 输出结果:4387.298375
  • %.nf,浮点数,保留 n 位小数点(四舍五入),例如:
String.format("%.2f", 4387.2983749872);
// 输出结果:4387.30
  • %nf,浮点数右对齐,输出至少占据 n 个字符宽度,例如:
String.format("|%,6.1f|", 42.000);
// 输出结果:|  42.0|
  • %-nf,浮点数左对齐,输出至少占据 n 个字符宽度,例如:
String.format("|%,-6.1f|", 42.000);
// 输出结果:|42.0  |
  • %.ns,字符串,截取前 n 个字符,例如:
String.format("%.5s", "hello world");
// 输出结果:hello
  • %0nd,在前面补零,直到满足 n 个字符宽度,例如:
String.format("%08d", 123);
// 输出结果:00000123

三、格式化多个参数

format() 方法可以同时格式化多个参数,例如有这样一个字符串:
The rank is 20,456,654 out of 100,567,890.24.
要想达到上述效果,需要对字符串中的两个数字分别进行格式化。 例如:

int one = 20456654;
double two = 100567890.243907;
String s = String.format("The rank is %,d" out of %,.2f, one, two);// 输出结果:The rank is 20,456,654 out of 100,567,890.24

参数 one 对应第一个格式标识符,two 对应第二个格式标识符,允许后面跟随多个参数。


《 上一篇 人性化的 Autoboxing

相关文章:

【老白学 Java】数字格式化

数字格式化 文章来源:《Head First Java》修炼感悟。 很多时候需要对数字或日期进行格式化操作,来达到某些输出效果。Java 的 Formatter 类提供了很多扩展性功能用于字符串的格式化,只要调用 String 静态方法 format() ,传入参数…...

useCallback和forwardRef的联合使用

文章目录 一、useCallback二、forwardRef 总结了useCallback、forwardRef中的deps,以及操作子组建时会遇到数据流不同步的问题 一、useCallback useCallback可以缓存函数,这样避免组建更新导致的函数重建;useCallback在函数更新以后会在deps中…...

C# .NET CORE 开发问题汇总

1. error MSB4803: .NET Core 版本的 MSBuild 不支持“ResolveComReference”。请使用 .NET Framework 版本的 MSBuild。 引用了一个COM组件, 使用donet 命令时,提示不支持, 可以先将项目设置为x86以构建, 将COM引用添加到核心项目中,构建它,在obj\x86\…...

【C语言】拆数字组成最大数

相信你是最棒哒!!! 文章目录 题目描述 正确代码 法一注释版 简洁版 法二注释版 简洁版 题目描述 任意输入一个自然数,输出该自然数的各位数字组成的最大数。例如,输入 1593 ,则输出为 9531 。 输入描述 …...

【Git系列】根据提交打印邮箱

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

Nginx在处理客户端请求的并发性发面是否依赖Linux的多线程原理

Nginx在处理客户端请求的并发性发面是否依赖Linux的多线程原理 Nginx 在处理客户端请求的并发性方面,并不依赖于 Linux 的多线程原理。 Nginx 的并发处理主要基于 事件驱动模型 和 异步非阻塞 I/O,而不是传统的多线程或多进程模型。 Nginx 的并发处理模…...

Python生成对抗神经网络GAN预测股票及LSTMs、ARIMA对比分析ETF金融时间序列可视化

全文链接:https://tecdat.cn/?p38528 本文聚焦于利用生成对抗网络(GANs)进行金融时间序列的概率预测。介绍了一种新颖的基于经济学驱动的生成器损失函数,使 GANs 更适用于分类任务并置于监督学习环境中,能给出价格回…...

深入了解C++中const的用法

文章目录 一、C中的const如何理解?二、C中的const与C语言中的const有何区别?三、const与指针、引用的结合使用 一、C中的const如何理解? 在C中,const是一个关键字,用来表示常量性,意在告诉编译器某些变量或…...

【Linux金典面试题(上)】41道Linux金典面试问题+详细解答,包含基本操作、系统维护、网络配置、脚本编程等问题。

大家好,我是摇光~,用大白话讲解所有你难懂的知识点 之前写了一篇关于 python 的面试题,感觉大家都很需要,所以打算出一个面试专栏。 【数据分析岗】Python金典面试题 这个专栏主要针对面试大数据岗位、数据分析岗位、数据运维等…...

利用Python实现多元回归预测汽车价格

引言: AI技术的热门使得大家对机器学习有了更多的关注,作为与AI技术息息相关的一门课程,从头了解基础的机器学习算法就显得十分有必要,如:梯度下降,线性回归等。 正文: 本文将讲解线性回归中多元回回归的案例 机器学习大致可以分为监督学习,非监督学习、半监督学习还…...

抓包软件fiddler和wireshark使用手册

fiddler官方文档 Fiddler 抓包教程1 Fiddler 抓包教程2 wireshark抓包学习 2添加链接描述 ip 过滤 ip.src_host ip.dst_host ip.addr mac 过滤 eth.src eth.dst eth.addr 端口过滤 tcp.port tcp.srcport tcp.dstport 协议类型过滤 arp dhcp 规则组合 and or...

初识三大 Observer

文章目录 ResizeObserver、MutationObserver和IntersectionObserver用MutationObserver实现图片懒加载MutationObserver 兼容性问题IntersectionObserver 应用MutationObserver和IntersectionObserver的区别IntersectionObserver 实例示例一:图片懒加载示例二&#…...

Eclipse MAT(Memory Analyzer Tool) 使用手册

参考:JAVA内存泄露使用MAT(Memory Analyzer Tool)快速定位代码 Eclipse MAT 1.15.0提示JDK版本最低需要使用17版本的,如果不想安装可以下载ZIP包,或者使用较低版本的MAT。 为了避免下载的17版本JDK和本地环境干扰,可以直接在MAT配…...

TongWe7.0-东方通TongWeb控制台无法访问 排查

**问题描述:**无法访问TongWeb的控制台 逐项排查: 1、控制台访问地址是否正确:http://IP:9060/console #IP是服务器的实际IP地址 2、确认TongWeb进程是否存在,执行命令:ps -ef|grep tongweb 3、确认TongWeb服务启动…...

Ariba Procurement: Administration_Master data

采购主数据集成Procurement Master Data Integration 注意:并非所有元素都是必需的,数据元素的名称可能根据ERP的不同,有所不同。 Types of Master Data Accounting 在SAP Ariba中的各种会计元素字段中,填充有效值选择列表。建…...

爬虫学习案例4

爬取猪八戒网站数据:2024-12-12 使用xpath解析元素,安装依赖库 pip install lxml使用selenium步骤我的上篇博客有提到,这里就不重复了 selenium使用博客导航 # 安装pip install lxml,使用xpath from lxml import etree import time from s…...

Angular模块化应用构建详解

文章目录 前言一、理解Angular模块(NgModule)二、创建功能模块三、懒加载模块以提高性能四、共享模块五、库模块六、最佳实践与注意事项七、案例研究:重构电子商务平台结语 前言 Angular是一款由Google支持的、用于构建动态Web应用程序的前端…...

51c大模型~合集89

我自己的原文哦~ https://blog.51cto.com/whaosoft/12815167 #OpenAI很会营销 而号称超强AI营销的灵感岛实测成效如何? OpenAI 是懂营销的,连续 12 天发布,每天一个新花样,如今刚过一半,热度依旧不减。 毫无疑问&…...

【蓝桥杯备战】Day 1

1.基础题目 LCR 018.验证回文串 给定一个字符串 s ,验证 s 是否是 回文串 ,只考虑字母和数字字符,可以忽略字母的大小写。 本题中,将空字符串定义为有效的 回文串 。 示例 1: 输入: s "A man, a plan, a canal: Panama…...

FedAdam算法:供给方信用,数据质量;更新一致性

FedAdam算法:供给方信用,数据质量;更新一致性 FedAdam算法概述 FedAdam是一种联邦学习(Federated Learning)算法。联邦学习是一种机器学习技术,它允许在多个设备或数据中心(称为客户端)上训练模型,而无需将数据集中到一个中央服务器,从而保护数据隐私。FedAdam主要用于…...

配电网最优潮流与二阶锥:解决配电网规划难题

配电网 最优潮流 二阶锥 最优潮流模型,用于解决配电网规划(DNP)问题。 数学优化模型,旨在找到基于给定参数和约束条件的最优配电网规划解决方案。 SOCPR方法用于处理问题中的非凸性,从而更容易找到大规模配电网的近似…...

Buster批量电子邮件处理教程:从列表导入到结果分析

Buster批量电子邮件处理教程:从列表导入到结果分析 【免费下载链接】buster An advanced tool for email reconnaissance 项目地址: https://gitcode.com/gh_mirrors/bus/buster Buster是一款强大的电子邮件侦察工具,能够帮助用户高效处理批量电子…...

【03】AJAX发送get请求

AJAX发送get请求一、发送GET请求二、设置请求参数一、发送GET请求 1.创建html文件&#xff1a; test.html中的内容&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport&q…...

赶deadline必备! 降AI率平台 千笔AI VS 知文AI 全学科适配首选

在AI技术迅速发展的今天&#xff0c;越来越多的学生和研究者开始借助AI工具辅助论文写作&#xff0c;以提高效率、优化内容。然而&#xff0c;随着学术审核标准的不断提升&#xff0c;AI生成内容的痕迹和重复率问题愈发凸显&#xff0c;成为困扰众多学子的“隐形障碍”。无论是…...

CentOS7安装卡在引导装载程序?3步搞定grub2-mkconfig卡死问题

CentOS7安装卡在引导装载程序&#xff1f;3步搞定grub2-mkconfig卡死问题 当你在安装CentOS7时遇到系统卡在"正在安装引导装载程序"界面&#xff0c;这通常是由于grub2-mkconfig进程在执行os-prober检测时陷入死循环。这种情况在双系统环境中尤为常见&#xff0c;特别…...

ZCU102实战:从零构建MIG控制器与DDR4通信工程

1. 初识ZCU102开发板与MIG控制器 第一次拿到ZCU102开发板时&#xff0c;我就像拿到一个新玩具的孩子&#xff0c;既兴奋又有点不知所措。这块由Xilinx推出的高性能开发板搭载了Zynq UltraScale MPSoC芯片&#xff0c;是FPGA开发者的利器。但真正让我头疼的是如何让这块板子与DD…...

基于GD32VW553的SG90舵机PWM驱动与角度控制实战

基于GD32VW553的SG90舵机PWM驱动与角度控制实战 最近在做一个机器人小项目&#xff0c;需要用GD32VW553开发板控制舵机&#xff0c;正好手头有最常见的SG90舵机。很多刚开始接触嵌入式控制的朋友&#xff0c;可能对如何用单片机精确控制舵机角度有点摸不着头脑。其实原理并不复…...

赤道波动解析:浅水模型中的Rossby与Kelvin波动力学

1. 浅水模型&#xff1a;理解大气与海洋波动的钥匙 想象一下你在游泳池里轻轻搅动水面&#xff0c;产生的波纹会向四周扩散。这种看似简单的现象&#xff0c;却与地球大气和海洋中的大规模波动有着惊人的相似性。这就是浅水模型研究的核心——用简化的数学工具揭示复杂流体运动…...

Mac用户必看:如何安全禁用SIP保护(附csrutil详细操作指南)

Mac系统完整性保护深度解析&#xff1a;安全禁用SIP的完整指南 作为长期使用Mac进行开发的技术从业者&#xff0c;我深刻理解系统完整性保护&#xff08;SIP&#xff09;带来的安全与便利之间的微妙平衡。记得去年在调试一个底层驱动时&#xff0c;SIP就像一位尽职的保安&#…...

Cosmos-Reason1-7B详细步骤:从镜像启动到视频理解全流程(含4FPS适配)

Cosmos-Reason1-7B详细步骤&#xff1a;从镜像启动到视频理解全流程&#xff08;含4FPS适配&#xff09; 1. 开篇&#xff1a;认识物理世界的AI大脑 想象一下&#xff0c;你给AI看一段视频&#xff0c;视频里一个机器人正在厨房里移动&#xff0c;旁边地上有一滩水。你问AI&a…...