String.format()

String.format() 是 Java 中用于格式化字符串的方法,它允许将指定的参数按照指定的格式插入到字符串模板中。这种格式化操作可以将各种类型的数据转换成字符串,并且支持指定数据的格式化方式,例如数字的小数位数或日期的格式。

用法和参数

String formattedString = String.format(format, args);

  • format 是一个包含格式说明符的字符串,其中 % 后面跟随一个格式字符表示将要插入的数据的类型和格式。
  • args 是一个变长参数列表,包含了要格式化插入到 format 字符串中的数据。

格式说明符

格式说明符由 % 后面跟随的内容组成,主要包括:

  • 索引参数:可选的数字,指定 args 中的参数索引位置。例如 %1$s 表示使用 args 中第一个参数作为字符串。
  • 格式化修饰符:可以包括宽度、精度和标志,用于格式化输出的方式。例如 %10.2f 表示输出一个浮点数,总宽度为10,保留两位小数。
  • 转换字符:指定要格式化的数据类型,如 d(整数)、f(浮点数)、s(字符串)、t(日期时间)等。

示例

  1. 格式化字符串

    String name = "Alice";
    int age = 30;
    String message = String.format("Hello, %s. You are %d years old.", name, age);
    // 输出结果:Hello, Alice. You are 30 years old.
    
  2. 格式化数字

    double price = 12.3456;
    String formattedPrice = String.format("The price is %.2f dollars.", price);
    // 输出结果:The price is 12.35 dollars.
    
  3. 日期时间格式化

    Date now = new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String formattedDate = String.format("Current date and time: %tF %tT", now, now);
    // 输出结果:Current date and time: 2024-06-18 15:30:00
    

注意事项

  • 格式说明符要与要插入的参数类型匹配,否则会抛出异常。
  • 如果提供的参数数量不足或过多,或者参数类型与格式说明符不匹配,都会导致运行时异常。
  • String.format() 返回一个格式化后的字符串,不会直接改变原始的字符串或参数。

使用 String.format() 可以方便地生成格式化的字符串,适用于各种场景,如日志记录、用户界面显示、报告生成等需要动态生成文本内容的情况。

转换字符:

  1. 通用转换

    • %s:格式化为字符串。
    • %b:格式化为布尔值。
    • %c:格式化为字符。
    • %d:格式化为十进制整数。
    • %o:格式化为八进制整数。
    • %x%X:分别格式化为十六进制整数(小写或大写)。
    • %h:格式化为哈希码的十六进制表示。
  2. 浮点数转换

    • %f:格式化为十进制浮点数。
    • %e%E:分别以科学计数法格式化为浮点数(小写或大写)。
    • %g%G:根据数值的大小选择 %f 或 %e 格式(小写或大写)。
  3. 整数转换

    • %d:格式化为十进制整数。
    • %o:格式化为八进制整数。
    • %x%X:分别格式化为十六进制整数(小写或大写)。
  4. 日期/时间转换

    • %t:格式化为日期/时间。
      • %tA:全写的星期几(如 “Sunday”)。
      • %ta:缩写的星期几(如 “Sun”)。
      • %tB:全写的月份(如 “January”)。
      • %tb%th:缩写的月份(如 “Jan”)。
      • %tY:4 位数的年份。
      • %ty:2 位数的年份。
      • %tm:月份(01-12)。
      • %td:月中的天数(01-31)。
      • %tH:24 小时制的小时数(00-23)。
      • %tI:12 小时制的小时数(01-12)。
      • %tM:分钟数(00-59)。
      • %tS:秒数(00-60)。
  5. 其他转换

    • %n:换行符。
    • %%:百分号。
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值