String类添加了新方法来处理文本块:
- stripIndent():从字符串的开头和结尾删除附带的空格。
- translateEscapes():根据字符串语法翻译转义序列。
- formatted():相当于String的format()方法,支持文本块字符串中的格式化。
stripIndent
stripIndent()从字符串的开头和结尾删除附带的空格,每行都进行相同的缩进。
package com.morris.java17;
/**
* String新增的API之stripIndent()的使用
*/
public class StringStripIndentDemo {
public static void main(String[] args) {
String t1 = """
\s\s\saaa\s\s\s
\s\s\sbbb\s\s\s
\s\s\sccc\s\s\s""";
// 为了看到效果,将空格替换为.
System.out.println(t1.replaceAll("\s", "."));
System.out.println("----------");
String t2 = t1.stripIndent();
// 为了看到效果,将空格替换为.
System.out.println(t2.replaceAll("\s", "."));
}
}
运行结果如下:
...aaa...
...bbb...
...ccc...
----------
aaa
bbb
ccc
translateEscapes
translateEscapes()将Java转义序列转换为相应的字符,并返回转换后的字符串。
package com.morris.java17;
/**
* String新增的API之translateEscapes()的使用
*/
public class StringTranslateEscapesDemo {
public static void main(String[] args) {
System.out.println("\u005C'".translateEscapes());
}
}
运行结果如下:
'
formatted()
formatted()相当于String的format()方法,支持文本块字符串中的格式化。
package com.morris.java17;
/**
* String新增的API之formatted()的使用
*/
public class StringFormattedDemo {
public static void main(String[] args) {
String s = "hello %s";
// replace
System.out.println(s.replace("%s", "world")); // hello world
// String.format
System.out.println(String.format(s, "world")); // hello world
// formatted()
System.out.println(s.formatted( "world")); // hello world
}
}