【Java】Java 中格式化字符串:String.format() 方法

这篇具有很好参考价值的文章主要介绍了【Java】Java 中格式化字符串:String.format() 方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文仅供学习参考!

相关文章地址:

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 提供了一些格式化方法,并为各种数据类型(例如DoubleIntegerDate)提供了充足的支持。
在 Java 中格式化字符串有三种主要方法。您可以使用String.format() 方法、printf() 方法或 MessageFormat 类来格式化字符串。其中,String.format() 方法是最常用的,因此我们将在本 Java 编程教程中介绍它。我们将在以后的文章中讨论其他两个选项。

Java 中的 String.format() 方法语法

Java 的String.format() 是一个静态方法,它使用给定的语言环境、格式String 和参数返回格式化的 String 。它有两种方式,如下:

public static String format(String format, Object... args)
public static String format(Locale locale, String format, Object... args)
  • locale: 格式化期间应用的区域设置。但是,如果它为 ,则不应用本地化。
  • format:要格式化的字符串
  • args :格式 String 中格式说明符引用的参数。如果参数多于格式说明符,则忽略多余的参数。参数的数量可以变化,并且可以完全省略。

以下是如何在 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.
  }
}

Java 中的 String.format() 异常

String.format() 方法会引发几个异常:

  • NullPointerException :如果传递的 String 参数为null ,则抛出此异常。
  • IllegalFormatException:如果指定的格式非法或参数不足。

开发人员几乎从不捕获这些异常,因为它们往往表明方法使用不当,而不是某种预期的运行时异常。

在 Java 中格式化字符串宽度、对齐方式和填充

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);
  }
}

使用 String.Format() 指定类型

正如我们在上面的 locale 参数示例中看到的,String.format() 还可以用于将其他数据类型转换和格式化为字符串。为此,Java 提供了多种 格式说明符 。它们以百分号字符 ( % ) 开头,并以typechar类型字符” 结尾,它指示将要转换的数据类型(intfloat等)以及数据的表示方式(十进制十六进制 等) 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() 方法的 格式说明符 的完整列表:

  • %% – 插入“ % ”符号
  • %x/%X – 十六进制整数
  • %t/%T – 时间和日期
  • %s/%S – 字符串
  • %n – 插入换行符
  • %o – 八进制整数
  • %f – 十进制浮点数
  • %e/%E – 科学记数法
  • %g – 导致格式化程序使用 %f 或 %e,以较短者为准
  • %h/%H – 参数的哈希码
  • %d – 十进制整数
  • %c – 字符
  • %b/%B – 布尔值
  • %a/%A – 浮点十六进制

请注意,某些说明符可能是小写大写。说明符的大小写决定了格式化字母的大小写。除此之外,无论大小写,执行的转换都是相同的。

参数索引和 String.format()

回想一下本教程前面的内容,String.format() 可以接受多个要格式化的对象。参数索引是一个整数,指示参数在该对象列表中的位置。不要与String Replace() 函数的编号组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);
  }
}

END

尽管 Java 中有多种格式化字符串的方法,但String.format() 方法由于其强大的多功能性而成为最常用的方法。从本地化、类型转换、宽度、对齐和填充,它都能满足要求!文章来源地址https://www.toymoban.com/news/detail-503662.html

到了这里,关于【Java】Java 中格式化字符串:String.format() 方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【每日挠头算法题(5)】重新格式化字符串|压缩字符串

    点我直达~ 1.遍历字符串,将数字字符和字母字符分别放在不同的字符串 2.如果|字母字符数量 - 数字字符数量| 1 ,则无法实现格式化,返回\\\"\\\" 3.如果不是2.中的情况,则偶数为字符必须放数量多的字符串对应的字符(下标从0开始)。 将数量多的字符串对应的字符和数量少的字

    2024年02月08日
    浏览(55)
  • Python 的字符串格式化指南

    Python 中控制字符串格式通常有三种形式: % 占位符(格式化符) str.format() 函数 f-string 内嵌式 Python 最先开始格式化字符串是用 %,但它的致命缺点是支持的类型有限制,只支持 int,str,double 这三种类型,从而导致其他所有类型只能转换(强制转换)为这几个类型,还有如果

    2024年02月08日
    浏览(56)
  • 第33讲:Python格式化字符串时使用字典传递字符串

    在前面对字符串进行格式化输出时,传递被格式化的字符串时都是单个的,如果想要对字典中Key对应的Value进行格式化输出,常规的方法如下:

    2023年04月24日
    浏览(54)
  • Python字符串格式化 (%操作符)

    在许多编程语言中都包含有格式化字符串的功能,比如C和Fortran语言中的格式化输入输出。在Python中内置有对字符串进行格式化的操作符是\\\"%\\\"。 模板 格式化字符串时,Python使用一个字符串作为模板。模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的

    2024年02月14日
    浏览(50)
  • 浅谈非栈上格式化字符串

    这里先浅分析修改返回地址的两种打法,分别是\\\"诸葛连弩\\\"和”四马分肥“ 本文例题 以陕西省赛easy_printf为主 简单看一看程序 需要先过一个判断然后进入vuln 进入后 有一个13次的循环 可以让我们操作 第一步 肯定要先leak出栈地址 程序基地址和libc基地址 第二步 修改ret地址

    2024年02月14日
    浏览(53)
  • 格式化字符串你都懂了吗

    今天跟大家聊聊字 符串的格式化 这部分内容。乍一听“ 格式化 ”这三个字,有的初学者可能会懵:难道这是要清空字符串的节奏? 其实不是的,恰恰相反,格式化字符串是为了让字符串变的更美观、更灵活。接下来就给大家详细介绍格式化字符串的概念以及具体用法。 格

    2024年02月04日
    浏览(53)
  • Python 用户输入和字符串格式化指南

    Python 允许用户输入数据。这意味着我们可以向用户询问输入。在 Python 3.6 中,使用 input() 方法来获取用户输入。在 Python 2.7 中,使用 raw_input() 方法来获取用户输入。以下示例要求用户输入用户名,并在输入用户名后将其打印在屏幕上: Python 3.6: Python 2.7: 为了确保字符串按预

    2024年02月05日
    浏览(82)
  • 格式化字符串走过的坑 pwn109

    格式化字符串走过的坑 pwn109 今天做的一道题有一个坑我调试半天终于打通了,格式化字符串的坑,确实不少,东西也比较多容易忘记,怎么说呢,功夫在平时,经验少了 老规矩先看一下保护 Full RELRO意味着got不能修改也就是不能通过格式化字符串漏洞来改got表,但是nx保护关

    2024年04月08日
    浏览(62)
  • 【Python入门篇】——Python基础语法(字符串格式化,表达式格式化和数据输入)

    作者简介: 辭七七,目前大一,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: Python入门,本专栏主要内容为Python的基础语法,Python中的选择循环语句,Python函数,Python的数据容器等。 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 目前通过%符号占位

    2024年02月05日
    浏览(58)
  • Godot 4 源码分析 - 增加格式化字符串功能

    Godot 4的主要字符串类型为String,已经设计得比较完善了,但有一个问题,格式化这块没怎么考虑。 String中有一个format函数,但这个函数只有两个参数,这咋用? 查找使用例子,都是这种效果 一看就懵。哪里有之前用的带%s %d...之类的格式化用得舒服。 动手实现一个 提供s

    2024年02月14日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包