06、Java12 新特性 - String的新方法

Java 12 为 String 引入了以下新方法,以便于格式化。

Java12 indent(n)方法

根据传递的参数调整每行字符串的缩进。

用法


string.indent(n)
  • n > 0 : 在每行的开头插入空格。
  • n < 0 : 删除每行开头的空格。
  • n < 0 和 n < 可用空格: 删除每行的所有前导空格。
  • n = 0 : 没有变化。

transform(Function<? super String, ? extends R> f) 方法

将字符串转换为 R 形式的结果。

用法


String transformed = text.transform(value -> new StringBuilder(value).reverse().toString());

Optional<String> describeConstable() 方法

返回包含 String 实例描述的可选对象。

用法


Optional<String> optional = message.describeConstable();

resolveConstantDesc (MethodHandles.Lookup lookup) 方法

返回给定字符串的描述符实例字符串。

用法


String constantDesc = message.resolveConstantDesc(MethodHandles.lookup());

Java12 String方法示例

ApiTester.java


package com.yiidian;

import java.lang.invoke.MethodHandles;
import java.util.Optional;

public class APITester {
   public static void main(String[] args) {
      String str = "Welcome \nto yiidian.com!";
      System.out.println(str.indent(0));
      System.out.println(str.indent(3));

      String text = "Java";
      String transformed = text.transform(value -> new StringBuilder(value).reverse().toString());
      System.out.println(transformed);

      Optional<String> optional = text.describeConstable();
      System.out.println(optional);

      String cDescription = text.resolveConstantDesc(MethodHandles.lookup());
      System.out.println(cDescription);
   }
}

输出结果为


Welcome 
to yiidian.com!

   Welcome 
   to yiidian.com!

avaJ
Optional[Java]
Java