概述
在编写程序的过程中,会经常用到预格式化的字符串。例如,处理异常信息的时候,一些错误当中会显示一些需要变动的提示信息。
示例:
错误信息输出:Bucket named to XXX exists
可以看到其中XXX是一个变值,需要传入到错误消息字符串,然后进行拼接。我们可以使用java.utils包下的Formatter格式化处理类。
示例代码
import org.junit.jupiter.api.Test;
import java.util.Formatter;
import java.util.Locale;
import static org.junit.jupiter.api.Assertions.assertEquals;
class FormatterTest {
@Test
void errFormatterTest(){
String t1 = "this is %s bucket,its code is %s";
String t2 = "that is old bucket";
//如果存在预处理格式的字符串就做相应的替换
Formatter formatter1 = new Formatter();
formatter1.format(Locale.getDefault(Locale.Category.FORMAT),
t1, "wfwf","3");
assertEquals(formatter1.toString(),"this is wfwf bucket,its code is 3");
//如果不存在预处理字符串,也没有关系,不会产生异常,返回原字符串
Formatter formatter2 = new Formatter();
formatter2.format(Locale.getDefault(Locale.Category.FORMAT),
t2, "wfwf");
assertEquals(formatter2.toString(),"that is old bucket");
}
}
抽取后的代码:
Formatter formatter1 = new Formatter();
formatter1.format(Locale.getDefault(Locale.Category.FORMAT),srouceString, formatterString...);
String newString = formatter1.toString();