javastring.format详解

一、基本概念

Java中常用的字符串格式化方法是string.format方法。这个方法允许开发者将不同类型的数据格式化为一个字符串。string.format实际上是调用了一个叫做Formatter的类,对于格式化字符串的操作全部委托给Formatter来做。在Formatter类中使用格式化字符串语法指定占位符,然后将要输出的数据作为参数传递到format方法中。

占位符语法为:%[argument_index$][flags][width][.precision]conversion,在这里,%是必须的开头。同时,占位符包含5个部分:

  1. argument_index:表示在当前占位符所在参数列表中的位置,从1开始计数,可省略。
  2. flags:标记字符,用来控制输出的格式。
  3. width:用来指定输出的最小宽度。
  4. precision:用来指定精度,与类型相关。如果省略,则将其设置为6。
  5. conversion:用来指定输出的类型,包括十六进制、八进制、科学计数法等等。

二、使用示例

string.format可以用于很多不同的类型,包括整数、浮点数、日期、时间等。下面是一些常见的示例:

1、整数类型

int num = 123;
System.out.println(String.format("%d", num));//输出:123
System.out.println(String.format("%4d", num));//输出: 123(宽度为4,右对齐)
System.out.println(String.format("%04d", num));//输出:0123(宽度为4,左补0)
System.out.println(String.format("%+-4d", num));//输出:+123(宽度为4,左对齐,带正号)
System.out.println(String.format("%,d", num));//输出:123(千位分隔符)

2、浮点数类型

double pi = 3.1415926;
System.out.println(String.format("%f", pi));//输出:3.141593
System.out.println(String.format("%.2f", pi));//输出:3.14(保留2位小数)
System.out.println(String.format("%8.2f", pi));//输出:    3.14(宽度为8,右对齐)
System.out.println(String.format("%+8.2f", pi));//输出:   +3.14(宽度为8,右对齐,带正号)
System.out.println(String.format("%08.2f", pi));//输出:0003.14(宽度为8,左补0)

3、日期和时间

Date now = new Date();
System.out.println(String.format("%tc", now));//输出:星期一 八月 16 20:09:36 CST 2021
System.out.println(String.format("%tr", now));//输出:08:09:36 下午
System.out.println(String.format("%tY-%tm-%td", now, now, now));//输出:2021-08-16
System.out.println(String.format("%tH:%tM:%tS", now, now, now));//输出:20:14:04

三、高级特性

在Formatter中还有一些高级功能,例如格式化输出集合类型、输出颜色等等。

1、格式化输出集合类型

Formatter提供了一些特殊的占位符来完成集合类型的格式化输出。下面是一些示例:

List list = Arrays.asList("apple", "banana", "cherry");
System.out.println(String.format("%s", list));//输出:[apple, banana, cherry]
System.out.println(String.format("%#s", list));//输出:[apple,banana,cherry](去掉逗号、空格、加上#号)
System.out.println(String.format("%-15s", list));//输出:[apple, banana, cherry](左对齐,宽度为15)

2、输出颜色

Formatter支持将输出的文本设置为不同的颜色,实现方法是在占位符中使用%[argument_index$]格式,并在flags中添加ANSI控制台颜色代码(Linux和Mac上有效)。下面是一些示例:

System.out.println(String.format("\033[31m%s\033[0m", "Hello, world!"));//输出红色文本
System.out.println(String.format("\033[46;37m%s\033[0m", "Hello, world!"));//输出蓝色背景+白色文本

四、总结

Java中的string.format方法是一个非常强大的字符串格式化工具,通过使用占位符来指定要格式化的类型、宽度、精度等等。在实际开发中,我们可以使用string.format方法来输出各种类型的数据,包括整数、浮点数、日期、时间、集合等等。同时,通过使用高级特性,我们可以将输出的文本进行格式化,并设置不同的颜色。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/197023.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-03 13:27
下一篇 2024-12-03 13:27

相关推荐

  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • Linux修改文件名命令详解

    在Linux系统中,修改文件名是一个很常见的操作。Linux提供了多种方式来修改文件名,这篇文章将介绍Linux修改文件名的详细操作。 一、mv命令 mv命令是Linux下的常用命…

    编程 2025-04-25
  • MPU6050工作原理详解

    一、什么是MPU6050 MPU6050是一种六轴惯性传感器,能够同时测量加速度和角速度。它由三个传感器组成:一个三轴加速度计和一个三轴陀螺仪。这个组合提供了非常精细的姿态解算,其…

    编程 2025-04-25
  • nginx与apache应用开发详解

    一、概述 nginx和apache都是常见的web服务器。nginx是一个高性能的反向代理web服务器,将负载均衡和缓存集成在了一起,可以动静分离。apache是一个可扩展的web…

    编程 2025-04-25
  • Java BigDecimal 精度详解

    一、基础概念 Java BigDecimal 是一个用于高精度计算的类。普通的 double 或 float 类型只能精确表示有限的数字,而对于需要高精度计算的场景,BigDeci…

    编程 2025-04-25
  • 详解eclipse设置

    一、安装与基础设置 1、下载eclipse并进行安装。 2、打开eclipse,选择对应的工作空间路径。 File -> Switch Workspace -> [选择…

    编程 2025-04-25
  • Python输入输出详解

    一、文件读写 Python中文件的读写操作是必不可少的基本技能之一。读写文件分别使用open()函数中的’r’和’w’参数,读取文件…

    编程 2025-04-25
  • Python安装OS库详解

    一、OS简介 OS库是Python标准库的一部分,它提供了跨平台的操作系统功能,使得Python可以进行文件操作、进程管理、环境变量读取等系统级操作。 OS库中包含了大量的文件和目…

    编程 2025-04-25
  • git config user.name的详解

    一、为什么要使用git config user.name? git是一个非常流行的分布式版本控制系统,很多程序员都会用到它。在使用git commit提交代码时,需要记录commi…

    编程 2025-04-25

发表回复

登录后才能评论