Java基础-StringJoiner简介与基本使用

142 阅读3分钟

StringJoiner简介与基本使用

一、简介

StringJoiner是Java 8引入的一个实用类,用于将多个字符串按照指定的分隔符、前缀和后缀拼接成一个完整的字符串。它简化了字符串拼接的过程,特别是在需要拼接的字符串数量不确定或需要指定格式时,StringJoiner提供了更为便捷和易读的方式。

二、基本使用

  1. 创建StringJoiner对象

    StringJoiner提供了两个构造函数:

    • 只指定分隔符

      java复制代码
      	StringJoiner joiner = new StringJoiner(",");
      

      这将创建一个使用逗号作为分隔符的StringJoiner对象,前缀和后缀默认为空字符串。

    • 指定分隔符、前缀和后缀

      java复制代码
      	StringJoiner joiner = new StringJoiner(",", "[", "]");
      

      这将创建一个使用逗号作为分隔符、方括号作为前缀和后缀的StringJoiner对象。

  2. 添加字符串

    使用add()方法可以向StringJoiner中添加字符串。该方法支持链式调用,即可以连续调用多个add()方法。

    java复制代码
    	joiner.add("apple");
    
    	joiner.add("orange");
    
    	joiner.add("banana");
    
  3. 获取拼接后的字符串

    使用toString()方法可以将StringJoiner对象中的字符串按照指定的格式拼接成一个完整的字符串。

    java复制代码
    	String result = joiner.toString();
    

    以上代码将输出:[apple,orange,banana]

  4. 处理空值

    默认情况下,如果StringJoiner中没有添加任何字符串,调用toString()方法将返回前缀和后缀的组合(如果指定了前缀和后缀)。如果希望在StringJoiner为空时返回特定的字符串,可以使用setEmptyValue()方法。

    java复制代码
    	joiner.setEmptyValue("No fruits");
    

    此时,如果StringJoiner中没有添加任何字符串,调用toString()方法将返回"No fruits"

  5. 合并StringJoiner

    使用merge()方法可以将另一个StringJoiner的内容合并到当前StringJoiner中。合并时,不会添加前缀和后缀,只添加内容。

    java复制代码
    	StringJoiner joiner1 = new StringJoiner(",");
    
    	joiner1.add("apple");
    
    	joiner1.add("orange");
    
    	 
    
    	StringJoiner joiner2 = new StringJoiner(",");
    
    	joiner2.add("banana");
    
    	joiner2.add("grape");
    
    	 
    
    	joiner1.merge(joiner2);
    

    此时,joiner1的内容将变为:apple,orange,banana,grape

三、示例代码

以下是一个完整的示例,演示了StringJoiner的基本使用:

java复制代码
	import java.util.StringJoiner;

	 

	public class StringJoinerExample {

	    public static void main(String[] args) {

	        // 创建StringJoiner对象,指定分隔符、前缀和后缀

	        StringJoiner joiner = new StringJoiner(",", "[", "]");

	 

	        // 添加字符串

	        joiner.add("apple");

	        joiner.add("orange");

	        joiner.add("banana");

	 

	        // 获取拼接后的字符串

	        String result = joiner.toString();

	        System.out.println("拼接结果: " + result); // 输出: [apple,orange,banana]

	 

	        // 处理空值

	        StringJoiner emptyJoiner = new StringJoiner(",");

	        emptyJoiner.setEmptyValue("No fruits");

	        System.out.println("空值处理: " + emptyJoiner.toString()); // 输出: No fruits

	 

	        // 合并多个StringJoiner

	        StringJoiner joiner1 = new StringJoiner(",");

	        joiner1.add("apple");

	        joiner1.add("orange");

	 

	        StringJoiner joiner2 = new StringJoiner(",");

	        joiner2.add("banana");

	        joiner2.add("grape");

	 

	        joiner1.merge(joiner2);

	        System.out.println("合并结果: " + joiner1.toString()); // 输出: apple,orange,banana,grape

	    }

	}

四、注意事项

  • 分隔符设置后不可修改:一旦创建了StringJoiner对象并指定了分隔符,就无法修改分隔符。
  • 连续空值会被保留占位:如果向StringJoiner中添加null值,拼接后的字符串中将包含null字符串,而不是忽略它。因此,在添加元素前需要进行空值检查。
  • 多线程环境要加锁保护:虽然StringJoiner不是线程安全的,但在多线程环境中使用时可以通过加锁来保护共享的StringJoiner对象。