Java—字符串预格式化处理

概述

在编写程序的过程中,会经常用到预格式化的字符串。例如,处理异常信息的时候,一些错误当中会显示一些需要变动的提示信息。

示例:

错误信息输出: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();

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注