在日常的编程中,需要经常性的对日志或各种输出进行收集,打印出具有各种信息的字符串。通常情况下,简单的方法是通过字符串的叠加来完成的。针对高性能场合,可能通过StringBuffer实现,提供性能上的优化。
但String类提供了一个更为简单的方式,可以完成绝大多数的文本替换。从而使通过累加拼凑字符串成为历史,使程序员更好的集中于字符串的信息流上。
以下是此方法的示例。
package cn.codenotes.java.stringformat;
import java.util.Date;
public class StringFormat {
public static void main(String[] args) {
Date today = new Date();
// 1. Old way
System.out.println("今天是" + today.toLocaleString() + ", 是周" + today.getDay() + "。");
// 2. New way
System.out.println(String.format("今天是%s, 是周%s", today.toLocaleString(), today.getDay()));
}
}
第一种方法,更多的精力需要花费在如何构造字符串满足语法要求上;而第二种方法,更多的精力用于字符串传达的信息,更加适合程序员传达思想,集中精神于内容上。