📜  何时在StringBuilder上使用StringJoiner

📅  最后修改于: 2020-03-27 01:45:38             🧑  作者: Mango

先决条件:StringJoiner
当您需要在流中连接字符串时,StringJoiner非常有用。
任务:假设我们需要字符串“ [George:Sally:Fred]”,我们在其中给出了一个包含“ George”,“ Sally”和“ Fred”的字符串数组。
StringJoiner提供add(String str)方法来基于构造函数中提供的定界符,前缀和后缀来连接字符串,但是如果我们使用StringBuilder执行我们的任务,那么我们首先必须附加前缀,然后遍历字符串数组并附加必需的字符串内每个元素之后的定界符,最后附加前缀。下面是演示两种方法的Java程序。

// Java针对StringBuilder使用StringJoiner
import java.util.StringJoiner;
public class Test
{
    public static void main(String[] args)
    {
        // string array
        String str[] = {"George","Sally","Fred"};
        // 使用StringJoiner
        // 初始化StringJoiner
        // 提供界定符, 前缀,后缀
        StringJoiner sj = new StringJoiner(":", "[", "]");
        // 拼接strings
        sj.add("George").add("Sally").add("Fred");
        // 把StringJoiner转为String
        String desiredString = sj.toString();
        System.out.println(desiredString);
        // 使用StringBuilder
        // 声明空stringbuilder
        StringBuilder sb = new StringBuilder();
        // 增加前缀
        sb.append("[");
        
        if(str.length>0)
        {
            // 增加第一个元素
            sb.append(str[0]);
            // 遍历array,同时增加界定符
            for (int i = 1; i < str.length; i++)
            {
                sb.append(":").append(str[i]);
            }
        }
        // 添加后缀
        sb.append("]");
        // StringBuilder转换为String
        String desiredString1 = sb.toString();
        System.out.println(desiredString1);
    }
}

输出:

[George:Sally:Fred]
[George:Sally:Fred]