JavaString新方法有哪些

wen java案例 1

本文目录导读:

JavaString新方法有哪些

  1. Java 11 新增(目前最常用、最具代表性的)
  2. Java 12 新增
  3. Java 13 新增
  4. Java 15 正式版(Text Blocks 稳定)
  5. Java 17 / 18 / 20+ 新增(较少但有用)
  6. 实际开发中最高频使用的几个

在 Java 8 之后,尤其是 Java 11Java 12+ 版本中,String 类增加了许多非常实用且高频的新方法,以下按版本分类列出主要的新方法及简要说明:


Java 11 新增(目前最常用、最具代表性的)

这些方法主要用于简化字符串处理,特别是 判空、重复、行处理 等场景。

方法 说明
isBlank() 判断字符串是否为 空白(空字符串或仅含空白字符,如空格、Tab、换行等)
lines() 返回一个 Stream<String>,按 换行符\n\r\r\n)分割字符串
strip() 去除字符串 首尾全角/半角空格、制表符等(比 trim() 更强,支持 Unicode)
stripLeading() 仅去除 开头 的空白
stripTrailing() 仅去除 的空白
repeat(int count) 返回一个重复 count 次的新字符串(count=0 返回空字符串)

示例:

String s = "  Hello \n World  ";
System.out.println(s.isBlank());          // false
System.out.println("   ".isBlank());      // true
System.out.println(s.strip());            // "Hello \n World"(保留中间空白)
System.out.println("*".repeat(5));        // "*****"
s.lines().forEach(System.out::println);   // 按行输出

Java 12 新增

方法 说明
indent(int n) 对字符串的 每一行 添加/移除缩进(正数增加,负数减少)
transform(Function<? super String, ? extends R> f) 对字符串应用一个函数并返回结果(链式处理,类似 map

示例:

String s = "Hello\nWorld";
System.out.println(s.indent(4));   // 每行前加4个空格
String result = "hello".transform(str -> str.toUpperCase() + "!");
System.out.println(result);        // "HELLO!"

Java 13 新增

主要用于 文本块(Text Blocks)的预览特性(正式版在 Java 15),但对字符串方法本身没有新增。


Java 15 正式版(Text Blocks 稳定)

虽然 Text Blocks()是语言特性,但通常与 stripIndent()translateEscapes() 等方法配合使用:

方法 说明
stripIndent() 去除文本块中 每行共有的前导空白(常用于格式化多行字符串)
translateEscapes() 将字符串中的转义序列(如 \n)转换为实际字符(类似 C 语言中的转义处理)
formatted(Object... args) 等价于 String.format(this, args),方便在文本块内使用占位符

示例:

String json = """
    {
        "name": "%s",
        "age": %d
    }
    """.formatted("Alice", 30).stripIndent();
System.out.println(json);

Java 17 / 18 / 20+ 新增(较少但有用)

没有大量新增实例方法,主要是一些细节优化和内部性能提升,实际开发中重点关注 Java 1115 的方法即可。


实际开发中最高频使用的几个

  1. isBlank() —— 替代 s == null || s.trim().isEmpty() 的代码
  2. strip() / stripLeading() / stripTrailing() —— 比 trim() 更安全(支持 Unicode 空白)
  3. repeat(n) —— 快速生成重复字符串,不用循环
  4. lines() —— 按行处理多行文本(如日志解析)
  5. indent(n) —— 快速调整多行文本缩进

如果你的 JDK 版本低于 11,建议升级,因为这些方法能极大简化日常字符串操作。

抱歉,评论功能暂时关闭!