2020-11-07 03:50:57
在 Java 中,多行字符串可以通过多种方式实现,具体取决于使用的 JDK 版本和项目需求。以下是几种常见的方法:
1. 文本块(Text Blocks)从 JDK 15 开始,Java 引入了文本块功能,使用三个双引号 """ 定义多行字符串:
public String textBlocks() { return """ Get busy living or get busy dying. --Stephen King""";}通过 + 或 concat() 方法拼接多行字符串,结合行分隔符:
public String stringConcatenation() { String newLine = System.lineSeparator(); return "Get busy living" + newLine + "or" + newLine + "get busy dying." + newLine + "--Stephen King";}使用 String.join() 和行分隔符拼接字符串数组:
public String stringJoin() { String newLine = System.lineSeparator(); return String.join(newLine, "Get busy living", "or", "get busy dying.", "--Stephen King");}通过 append() 方法动态构建多行字符串:
public String stringBuilder() { String newLine = System.lineSeparator(); return new StringBuilder() .append("Get busy living").append(newLine) .append("or").append(newLine) .append("get busy dying.").append(newLine) .append("--Stephen King") .toString();}利用 PrintWriter 的 println() 自动添加行分隔符:
public String stringWriter() { StringWriter writer = new StringWriter(); PrintWriter printWriter = new PrintWriter(writer); printWriter.println("Get busy living"); printWriter.println("or"); printWriter.println("get busy dying."); printWriter.println("--Stephen King"); return writer.toString();}使用 Guava 的 Joiner 类:
public String guavaJoiner() { String newLine = System.lineSeparator(); return Joiner.on(newLine).join( "Get busy living", "or", "get busy dying.", "--Stephen King");}将多行文本存储在外部文件中,通过代码读取:
public String loadFromFile() throws IOException { return new String(Files.readAllBytes(Paths.get("stephenking.txt")));}部分 IDE(如 IntelliJ IDEA)支持多行字符串的自动格式化,但仅限开发时使用,无法在运行时生效。
总结根据实际环境和需求选择最适合的方法即可。