java字符串格式化(String类format方法)

当我们需要将一个字符串和一些占位符组合起来形成一个新的字符串时,该怎么做呢?答案就是使用Java字符串格式化方法。Java字符串格式化方法可以让我们灵活地使用字符串格式化功能,将我们想要的内容组合成一个格式化好的字符串。

1. 字符串格式化的语法

Java字符串格式化方法使用占位符来表示要在新字符串中插入的值。以下是常见的占位符及其类型和示例:

占位符 类型 示例
%s 字符串类型 "Hello, %s!"
%d 整型 "The answer is %d."
%f 浮点型 "The price is %.2f."
%b 布尔型 "It is %b that Java is cool."
%c 字符型 "The first letter is %c."
%t 日期和时间类型 "Today is %tF."
%% 百分号 "The price is 99%%."

其中,%s表示字符串类型,%d表示整型,%.2f表示保留两位小数的浮点型,%b表示布尔型,%c表示字符型,%t表示日期和时间类型,%%表示百分号。

在字符串中,我们可以通过占位符的方式来插入需要的变量,例如: '%s' 表示需要插入一个字符串变量。

在占位符中还可使用标识符,如下表所示:

标识符 含义
- 左对齐
+ 输出正负号
# 对8进制和16进制数增加前缀
0 数字前面补0
, 每3位数字添加一个,号
. 小数点

使用示例:

  • "%-10s"以左对齐10个字符的方式输出字符串
  • "%+d"输出带正负号的数字
  • "%08d"前导0填充

2. 字符串格式化的使用

我们先定义一些需要使用的变量:

String name = "Java";
int age = 21;
double price = 99.99;
char grade = 'A';
boolean isCool = true;

接下来我们使用字符串格式化来组合这些变量。示例代码如下:

String message = String.format("Hello, %s! You are %d years old and the price is %.2f. " +
    "Your grade is %c and it is %b that Java is cool.", name, age, price, grade, isCool);
System.out.println(message);

输出结果:

Hello, Java! You are 21 years old and the price is 99.99. Your grade is A and it is true that Java is cool.

我们看到,格式化后的字符串里面,占位符(%s %d %.2f %c %b)分别换成了我们传入的变量(name, age, price, grade, isCool)。

再来一个加上标识符的例子:

String message2 = String.format("Hello, %-10s! You are %+d years old and the price is %,d. " +
    "Your grade is %c and it is %b that Java is cool.", name, age, (int) price * 100, grade, isCool);
System.out.println(message2);

输出结果:

Hello, Java      ! You are +21 years old and the price is 9,999. Your grade is A and it is true that Java is cool.

我们看到,使用了标识符后,左侧添加了空格字符,数字前面添加了加号,价格逗号分位,加上了%。注意,格式化的实际结果是"go east of east"(E字符向左推多出来的字符集合),10字符正好只够输出Java三个字符,不够时补空格。

3. 注意事项

  • 如果只有占位符,而没有对应的参数传入,会抛出MissingFormatArgumentException异常
  • 如果有多余的参数传入,会抛出TooManyFormatArgsException异常
  • 如果有非法的格式化字符,会抛出UnknownFormatConversionException异常
  • 如果有将一个字符串变量用 %d 格式化,会抛出java.util.IllegalFormatConversionException异常。

所以,我们在使用字符串格式化方法时需要特别注意数据类型和占位符的匹配。

结论

Java字符串格式化方法可以让我们方便地格式化字符串,可以插入任意类型的变量,灵活性很高。在使用时,需要注意数据类型和占位符的格式匹配。希望本文对读者有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java字符串格式化(String类format方法) - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • Java中三种简单注解介绍和代码实例

    Java中三种简单注解介绍和代码实例 什么是注解 注解是Java SE 5.0引入的新特性,它是一种元数据,提供有关程序代码的其他信息。它们可以一起编译到类文件中,也可以在运行时被读取和使用。开发人员可以使用注解在代码层次结构中添加元数据,这可以从源代码中读取,解析,编译,或者在运行时使用反射技术。 三种简单注解 Java中有三种最常见的内置注解:@Over…

    Java 2023年5月26日
    00
  • Android仿QQ圆形头像个性名片

    作为网站的作者,我很乐意为大家讲解Android仿QQ圆形头像个性名片的完整攻略。整个过程可以分成以下步骤: 步骤一:导入CircleImageView库 进入项目的gradle文件,在dependencies选项下加入以下代码: compile ‘de.hdodenhof:circleimageview:2.2.0’ 同步gradle,等待依赖库下载完毕。…

    Java 2023年5月26日
    00
  • Spring Boot使用过滤器和拦截器分别实现REST接口简易安全认证示例代码详解

    下面我为您详细讲解如何使用Spring Boot中的过滤器和拦截器进行REST接口安全认证的完整攻略。 什么是过滤器和拦截器? 过滤器(Filter)和拦截器(Interceptor)是Web开发中常见的两种拦截器,它们可以在请求和响应之前进行拦截和处理。在Spring Boot中,过滤器和拦截器都可以用于对请求进行安全认证。 两者的区别在于,过滤器是在Se…

    Java 2023年5月20日
    00
  • java 文件名截取方法

    当我们在Java程序中获取到一个文件的完整路径之后,有时候我们需要从该路径中截取出文件名,以便进行后续的一些操作。下面就来讲一下Java中如何进行文件名截取。 方法一:使用File类的getName()方法 File类是Java中提供的一个用于操作文件和目录的类,其中getName()方法可以返回文件名(不包含路径名)。 示例代码: File file = …

    Java 2023年5月19日
    00
  • 输出java进程的jstack信息示例分享 通过线程堆栈信息分析java线程

    下面是详细讲解“输出java进程的jstack信息示例分享 通过线程堆栈信息分析java线程”的完整攻略。 什么是jstack信息 jstack 是 JDK 自带的一款堆栈跟踪工具,用于查看 Java 进程中各个线程的运行状态以及占用资源情况。通过分析线程堆栈信息,可以快速定位代码中的性能问题,排查进程死锁等问题。 如何输出jstack信息 下面是输出 ja…

    Java 2023年5月26日
    00
  • 常见的Java锁有哪些?

    常见的Java锁有以下几种: 1. synchronized关键字 synchronized是Java提供的最基本的锁,可以用于方法或代码块中。它采用悲观锁的机制,在同一时间只能有一个线程获得该锁,其他线程需要等待。 示例: public class SynchronizedExample { private int count = 0; public sy…

    Java 2023年5月11日
    00
  • Spring中@Transactional用法详细介绍

    我来为您详细讲解Spring中@Transactional用法的攻略。 Spring中@Transactional用法详细介绍 一、什么是@Transactional @EnableTransactionManagement注解:开启事务管理器。 @Transactional注解:在类或方法上标记该业务需要事务管理。 二、@Transactional的常用属…

    Java 2023年5月20日
    00
  • Java数组添加元素的两种方法

    好的。下面将详细讲解Java数组添加元素的两种方法。 方法一:使用Arrays.copyOf() Arrays.copyOf() 方法能够将原有数组中的数据复制到新数组中,并向新数组中添加新元素。具体步骤如下: 创建一个新的数组,长度比原有数组长度多 1。 将原有数组中的所有元素复制到新数组中。 将新增元素添加到新数组的最后一个位置。 下面是使用Arrays…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部