Java String.format() 方法2025年8月17日 | 8 分钟阅读 在 Java 中,字符串格式化使程序员能够生成动态、可读且有组织的字符串。Java 中有多种格式化字符串的方法,但最流行和最有效的方法是 **String.format()** 方法。 ![]() String.format() 方法静态 String.format() 方法使用指定的格式字符串和参数返回一个格式化字符串。它与 C 语言的 **printf()** 函数相当。它返回一个格式化字符串。 Java String 类提供了以下两种格式()方法的变体 和 参数
Exception: 如果格式字符串包含非法语法、与给定参数不兼容的格式说明符、格式字符串所允许的参数不足,或存在其他非法情况,则该方法会抛出 **IllegalFormatException**。 内部实现示例:字符串格式Java String 类 format() 方法提供以下两种变体 Locale.US 参数指定格式应遵循美国语言环境的约定。 格式数字是“Hello, %s! You have %d new messages. 指定了两种格式:%s 用于字符串,%d 用于整数。” 参数 "John" 和 5 分别对应 %s 和 %d 格式说明符。 该方法返回一个格式化的字符串,然后将其打印到控制台。 理解这些参数和异常对于正确使用 Java 中的 String.format() 方法非常重要,可确保正确格式化并处理可能的错误。 Java String 格式说明符下表提供了 Java String 支持的格式说明符。
示例-1:String.format() 方法示例编译并运行输出 name is Andrew value is 32.334340 value is 32.334340000000 说明 sf1 使用占位符 %s 格式化字符串,结果为 "name is Andrew"。 sf2 使用 %f 格式化浮点数,结果为 "value is 32.334340"。 sf3 使用 %32.12f 格式化浮点数,最小宽度为 32 个字符,小数点后 12 位,结果为 "value is 32.334340000000 这些示例说明了 `String.format()` 如何让我们使用占位符格式化字符串并控制数字的外观,包括为浮点数指定最小宽度和精度。 示例-2:String.format() 方法该方法支持各种数据类型,并将它们格式化为字符串类型。 示例编译并运行输出 101 Alice 101.000000 65 c 说明 str1 使用 %d 格式化整数,结果为字符串 "101"。 str2 使用 %s 格式化字符串,结果为 "Alice"。 str3 使用 %f 格式化浮点数,结果为 "101.000000"。 str4 使用 %x 将整数格式化为十六进制,结果为 "65"(101 的十六进制)。 str5 使用 %c 格式化字符,结果为 "c"。 这些示例演示了如何使用 String.format() 方法格式化不同的数据类型,根据您的需求提供格式化输出的灵活性。 示例-2:String.format() 方法除了格式化之外,我们还可以设置任何值的宽度、填充等。让我们看一个设置整数值宽度和填充的示例。 示例编译并运行输出 101 | 101| |101 | | 101| |0000000101| 说明 str1 使用 %d 格式化整数,结果为字符串 "101"。 str2 使用最小宽度为 10 个字符、右对齐格式化一个整数,结果为 "| 101|"。 str3 使用最小宽度为 10 个字符、左对齐格式化一个整数,结果为 "|101 |"。 str4 使用正数前的空格格式化一个整数,结果为 "| 101|"。 str5 使用最小宽度为 10 个字符、用前导零填充格式化一个整数,结果为 "|0000000101|"。 这些示例演示了 Java String.format() 方法提供的各种格式化选项,允许您控制字符串中整数的外观。 Java String 格式说明符Java String.format() 方法中的格式说明符允许我们控制数据在格式化字符串中的显示方式。以下是格式说明符的一些常见用例 格式化数字
示例 输出: 整数:42,浮点数:3.14 格式化字符串%s: 格式化字符串。 示例 输出: Hello, Alice! 格式化布尔值%b: 格式化布尔值。 示例 输出: Is Admin: true 格式化字符%c: 格式化字符。 示例 输出: Grade: A 指定宽度和精度我们可以指定格式化输出的最小宽度和精度。 示例 输出: Value: 123 日期和时间格式化(使用 %t)%t 后跟一个转换字符可格式化日期和时间值。 转换字符包括
示例:日期和时间说明符 输出: Today's date is Sunday, 06 February 2024 这些只是 Java String.format() 方法中使用格式说明符的几个示例。它们为在字符串中动态格式化数据提供了一个强大的机制。 区域设置特定格式String.format() 方法有一个接受 Locale 对象的重载版本,这对于国际化至关重要。 语法 示例:区域设置特定格式 示例编译并运行输出 Salary: $123,456.78 Gehalt: 123.456,78€ Salaire : 123 456,78 € 性能考虑尽管 String.format() 功能强大,但其解析格式字符串和生成新的 Formatter 对象的开销使其在基本字符串构建方面不如其他方法高效。对于基本串联,简单的选项是 **+ 运算符** 或 **StringBuilder**。对于复杂的格式化,String.format() 提供了最佳的可读性、可维护性和功能。 模板文字(文本块)它们本质上是一种用于多行字符串的字符串格式化类型,于 Java 15 中引入。它们提高了复杂、多行字符串模板的可读性,但不能直接替代 String.format()。文本块可与 String.format() 一起使用。 示例编译并运行输出 Hello Alice! Welcome to London. We hope you enjoy your stay. 说明 新功能使创建和管理多行字符串变得更加容易,尤其是在处理 JSON、XML 或 SQL 查询时。字符串本身的 String.formatted() 方法是一种将 String.format() 应用于文本块的便捷方法。 String.format() 方法的特性指定宽度和精度:我们可以在格式化输出中指定最小宽度和精度。 指定参数索引:我们可以指定要排序的参数的索引。 区域设置支持:我们可以指定一个位置来应用特定于区域设置的规则。 为什么使用 Java 中的 String.format() 方法?可读性:通过将格式与数据分开,提高代码的可读性。 本地化:通过允许用户轻松地根据本地化转换格式来促进本地化。 动态格式化:允许根据运行时数据动态格式化字符串。 结论Java 中的 String.format() 方法提供了一种简单的方式来创建带有占位符的排序字符串。通过使用格式说明符和参数,我们可以轻松创建复杂的文本输出。无论我们是创建简单的消息还是格式化复杂的数据,String.format() 都为您提供了我们所需的功能和可读性。 Java String 格式选择题1. 格式说明符 _______ 用于分别用浮点数和十进制整数格式化字符串。
答案:a) 解释: %f 用于浮点数,%d 用于十进制整数。 2. 要在给定宽度内左对齐输出,请在 String.format() 中使用 _______ 标志。
答案:c) 解释: 一个左对齐输出的格式说明符标志是 - 标志。 3. 哪种方法最适合从带有分隔符的元素列表中构建字符串,例如从 List<String> 创建 CSV 字符串?
答案:c) 解释: String.join() 是为此用例而创建的,它提供了一种简洁有效的方法,使用给定的分隔符连接一组字符串。 4. _____ 类是管理复杂的、特定于区域设置的消息的更好选择,尤其适用于国际化 (i18n)。
答案:b) 解释: MessageFormat 旨在生成可本地化的格式化消息,这些消息可以处理复数和特定性别的措辞等变化。 5. 要重用上一个格式说明符中的参数,请在 String.format() 中使用 _____ 标志。
答案:a) 解释: 为了在不重复参数的情况下格式化同一 Date 对象中的日期或时间的不同部分,< 标志是一个特殊标志,它会重用前一个说明符的参数。 |
我们请求您订阅我们的新闻通讯以获取最新更新。