Java String.format()拼接方式

Java字符串拼接方式

String.format()

String.format()使用的是类似C语言的格式化方式,比如%s、%d之类的。

在Java中,基础数据类类型对应的常用占位符如下:

整数类型

整数类型(byte、short、int、long):

  • 十进制:%d
  • 八进制:%o
  • 十六进制:%x(小写)或 %X(大写)

示例:String.format("%d", 100L) 输出 "100"。

查阅Java的官方文档。例如,Java的String.format()的格式说明符语法中,转换符部分。例如,对于整数,%d用于十进制整数,
但参数可以是byte、short、int、long、BigInteger。也就是说,无论哪种整数类型,都可以用%d,或者%o(八进制)、%x(十六进制),不需要区分长度。

浮点类型

浮点类型(float、double):

  • 浮点数:%f
  • 科学计数法:%e(小写)或 %E(大写)
  • 自动选择(浮点或科学计数):%g(小写)或 %G(大写)

示例:String.format("%.2f", 3.1415f) 输出 "3.14"。

字符类型

字符类型(char):

  • 单个字符:%c

示例:String.format("%c", 'A') 输出 "A"。

布尔类型

布尔类型(boolean):

  • 布尔值:%b(输出 "true" 或 "false")

示例:String.format("%b", true) 输出 "true"。

String类型

在 Java 的 String.format() 方法中,String 类型应使用 %s 作为占位符。%s 是一个通用的字符串占位符,可以处理任何对象(包括 String),会自动调用对象的 toString() 方法将其转换为字符串。

具体用法:

  1. 基本用法:

    String name = "Alice";
    String formatted = String.format("Hello, %s!", name); // 输出 "Hello, Alice!"
    
  2. 处理非 String 对象:

    Integer number = 123;
    String formatted = String.format("Value: %s", number); // 输出 "Value: 123"
    
  3. 格式化控制:

    • 指定宽度:%10s(右对齐,最小宽度 10 字符)
         String.format("%10s", "Java"); // 输出 "      Java"
      
    • 左对齐:%-10s
         String.format("%-10s", "Java"); // 输出 "Java      "
      
    • 截断字符串:%.5s(最多保留前 5 个字符)
         String.format("%.5s", "Hello World"); // 输出 "Hello"
      
  4. 处理 null:

    String formatted = String.format("Value: %s", null); // 输出 "Value: null"
    

示例代码:

String result = String.format(
    "Name: %s, Age: %s, Object: %s, Null: %s", 
    "Alice", 25, new ArrayList<>(), null
);
// 输出:Name: Alice, Age: 25, Object: [], Null: null

注意事项

基础数据类型注意事项:

  • long类型不需要特殊修饰符(如 %ld),直接用 %d。
  • float和double均使用 %f,但传递float时会自动提升为double。
  • 非布尔值使用%b时,非null对象会输出"true",null输出"false"。

String类型注意事项:

  • %s 是最通用的占位符,可以处理所有数据类型(包括基础类型和对象)。
  • 如果参数是 char 类型(非字符串),%s 会将其转为单字符字符串。
  • 格式化时若参数为 null,%s 会输出 "null",而非抛出异常。

参考链接

  1. Java中常见字符串拼接九种方式
  2. 最优雅的Java字符串String拼接是哪种方式?
posted @ 2025-06-21 15:07  joudys  阅读(212)  评论(0)    收藏  举报