本文仅供学习参考! 相关文章地址: https://www.cnblogs.com/Dhouse/p/7776780.html Https://www.javatpoint.com/java
本文仅供学习参考!
相关文章地址:
https://www.cnblogs.com/Dhouse/p/7776780.html
Https://www.javatpoint.com/java-string-fORMat
https://www.geeksforgeeks.org/java-string-format-method-with-examples/
虽然System.out.println()适合调试和显示简单消息,但它不太适合格式化字符串。格式化字符串不仅显示字符串内容,而且还按照指定的顺序显示内容。例如,当显示像100000000这样的大整数时,您可能需要包含逗号,以便它显示为100,000,000。与小数类似,您可能希望显示特定的小数位数,例如199.53以及四舍五入。程序员会很高兴知道 Java 提供了一些格式化方法,并为各种数据类型(例如Double、Integer和Date)提供了充足的支持。
在 Java 中格式化字符串有三种主要方法。您可以使用**String.format()**方法、printf()方法或MessageFormat类来格式化字符串。其中,**String.format()**方法是最常用的,因此我们将在本 Java 编程教程中介绍它。我们将在以后的文章中讨论其他两个选项。
Java 的String.format()是一个静态方法,它使用给定的语言环境、格式String和参数返回格式化的**String 。**它有两种口味,如下:
public static String format(String format, Object... args)public static String format(Locale locale, String format, Object... args)
以下是如何在 Java 中使用**String.format()**的示例:
class StringFormatExample { public static void main(String[] args) { String name = "Rob Gravelle"; String str = String.format("My name is %s", name); System.out.println(str); // My name is Rob Gravelle }}
locale 参数对于根据给定区域设置的规则格式化数字和日期特别有用。例如,以下是“ France ”的区域设置值,根据法国数字系统,用逗号替换小数点:
import java.util.*;class StringFormatLocaleExample { public static void main(String[] args) { System.out.format( Locale.FRANCE, "The value of the float " + "variable is %f ", 10.3242342 ); // The value of the float variable is 10,324234. }}
您应该知道**String.format()**方法会引发几个异常:
开发人员几乎从不捕获这些异常,因为它们往往表明方法使用不当,而不是某种预期的运行时异常。
String.format ()方法还允许程序员设置格式化String的宽度、对齐方式和填充。以下类包含每个示例以及各种组合:
public class StringFormatWidthAndPaddingExample { public static void main(String[] args) { String greeting = "Hi Rob"; // Text width String.format("|%20s|", greeting); // | Hi Rob| System.out.println(greeting); // Left justify text String.format("|%-20s|", greeting); // |Hi Rob | System.out.println(greeting); // Maximum number of characters String.format("|%.3s|", greeting); // |Hi | System.out.println(greeting); // Max. characters with width String.format("|%20.3s|", greeting); // | Hi | System.out.println(greeting); }}
正如我们在上面的 locale 参数示例中看到的,**String.format()**还可以用于将其他数据类型转换和格式化为字符串。为此,Java 提供了多种格式说明符。它们以百分号字符 ( % ) 开头,并以typechar “类型字符”结尾,它指示将要转换的数据类型(int、float等)以及数据的表示方式(十进制、十六进制等) Java 中格式说明符的完整语法是:
% [flags] [width] [.precision] [argsize] typechar
我们可以在下面的程序中看到各种格式说明符如何影响数据的显示:
import java.util.Date;public class StringFormatTypesExample { public static void main(String[] args) { String str1 = String.format("%d", 2112); // Integer value String str2 = String.format("%f", 98.7); // Float value String str3 = String.format("%x", 101); // Hexadecimal value String str4 = String.format("%o", 023); // Octal value String str5 = String.format("%tc", new Date()); // Date object String str6 = String.format("%c", 'Z'); // Char value System.out.println(str1); // 2112 System.out.println(str2); // 98.700000 System.out.println(str3); // 65 System.out.println(str4); // 23 System.out.println(str5); // Thu Jan 05 20:52:06 GMT 2023 System.out.println(str6); // Z }}
**以下是String.format()**方法的格式说明符的完整列表:
请注意,某些说明符可能是小写或大写。说明符的大小写决定了格式化字母的大小写。除此之外,无论大小写,执行的转换都是相同的。
回想一下本教程前面的内容,String.format()可以接受多个要格式化的对象。参数索引是一个整数,指示参数在该对象列表中的位置。不要与String Replace()函数的编号组($1、 2∗∗等)混淆,∗参数索引∗将数字放在美元符号之前。因此,第一个参数由∗∗1 2**等)混淆,*参数索引*将数字放在美元符号之前。因此,第一个参数由**1 2∗∗等)混淆,∗参数索引∗将数字放在美元符号之前。因此,第一个参数由∗∗1引用,第二个参数由2$引用,依此类推。这是一个格式化两个数据的程序:一个浮点数和一个 字符串:
public class StringFormatArgumentIndexExample { public static void main(String[] args) { String product = "Bread"; double price = 4.99; String str = String.format("The price of %2$s is CAD $%1$.2f today.", price, product); // The price of Bread is CAD $4.99 today. System.out.println(str); }}
尽管 Java 中有多种格式化字符串的方法,但**String.format()**方法由于其强大的多功能性而成为最常用的方法。从本地化、类型转换、宽度、对齐和填充,它都能满足要求!
来源地址:https://blog.csdn.net/m0_47015897/article/details/131406451
--结束END--
本文标题: 【Java】Java 中格式化字符串:String.format() 方法
本文链接: https://lsjlt.com/news/414441.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-04-01
2024-04-03
2024-04-03
2024-01-21
2024-01-21
2024-01-21
2024-01-21
2023-12-23
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0