合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
### [`String.format()`](https://lingcoder.gitee.io/onjava8/#/book/18-Strings?id=stringformat) Java SE5 也参考了 C 中的`sprintf()`方法,以生成格式化的`String`对象。`String.format()`是一个`static`方法,它接受与`Formatter.format()`方法一样的参数,但返回一个`String`对象。当你只需使用一次`format()`方法的时候,`String.format()`用起来很方便。例如: ~~~ // strings/DatabaseException.java public class DatabaseException extends Exception { public DatabaseException(int transactionID, int queryID, String message) { super(String.format("(t%d, q%d) %s", transactionID, queryID, message)); } public static void main(String[] args) { try { throw new DatabaseException(3, 7, "Write failed"); } catch(Exception e) { System.out.println(e); } } } /* Output: DatabaseException: (t3, q7) Write failed */ ~~~ 其实在`String.format()`内部,它也是创建了一个`Formatter`对象,然后将你传入的参数转给`Formatter`。不过,与其自己做这些事情,不如使用便捷的`String.format()`方法,何况这样的代码更清晰易读。