Java8中StringJoiner类的使用详解

 更新时间:2022年10月25日 14:07:18   作者:胡安民-独行者  
Java在java.util包中添加了一个新的最终类StringJoiner。可以用于构造由定界符分隔的字符序列。本文将通过示例和大家分享一下StringJoiner类的使用,需要的可以参考一下

Java在java.util包中添加了一个新的最终类StringJoiner。

它用于构造由定界符分隔的字符序列。现在,您可以通过传递诸如comma(,),hyphen(-)等分隔符来创建字符串。还可以将前缀和后缀传递给char序列。

Java8 StringJoiner类的构造方法

构造方法描述
public StringJoiner(CharSequence delimiter)构造一个不带任何字符,没有前缀或后缀的StringJoiner,以及提供的定界符的副本。如果分隔符为null,则抛出NullPointerException。
public StringJoiner(CharSequence delimiter,CharSequence prefix,CharSequence suffix)使用提供的前缀,定界符和后缀的副本构造一个不带任何字符的StringJoiner。如果前缀,分隔符或后缀为null,则抛出NullPointerException。

Java8 StringJoiner类的方法

方法描述
public StringJoiner add(CharSequence newElement)将给定CharSequence值的副本添加为StringJoiner值的下一个元素。如果newElement为null,则添加“ null”。
public StringJoiner merge(StringJoiner other)如果它不是空的,它将添加不带前缀和后缀的给定StringJoiner的内容作为下一个元素。如果给定的StringJoiner为空,则该调用无效。
public int length()返回此StringJoiner的String表示形式的长度。
public StringJoiner setEmptyValue(CharSequence emptyValue)设置确定此StringJoiner的字符串表示形式时要使用的字符序列,并且尚未添加任何元素(即,当它为空时)。

分割案例

import java.util.StringJoiner;  
public class StringJoinerExample {  
    public static void main(String[] args) {  
        StringJoiner joinNames = new StringJoiner(","); // passing comma(,) as delimiter   
          
        // Adding values to StringJoiner  
        joinNames.add("Rahul");  
        joinNames.add("Raju");  
        joinNames.add("Peter");  
        joinNames.add("Raheem");  
                  
        System.out.println(joinNames);  
    }  
}  

输出结果为:

Rahul,Raju,Peter,Raheem

添加前缀和后缀

import java.util.StringJoiner;  
public class StringJoinerExample {  
    public static void main(String[] args) {  
        StringJoiner joinNames = new StringJoiner(",", "[", "]");   // passing comma(,) and square-brackets as delimiter   
          
        // Adding values to StringJoiner  
        joinNames.add("Rahul");  
        joinNames.add("Raju");  
        joinNames.add("Peter");  
        joinNames.add("Raheem");  
                  
        System.out.println(joinNames);  
    }  
}  

输出结果为:

[Rahul,Raju,Peter,Raheem]

合并两个StringJoiner

merge() 方法合并两个StringJoiner对象,但不包括第二个StringJoiner对象的前缀和后缀。

import java.util.StringJoiner;  
public class StringJoinerExample {  
    public static void main(String[] args) {  
  
        StringJoiner joinNames = new StringJoiner(",", "[", "]");   // passing comma(,) and square-brackets as delimiter   
          
        // Adding values to StringJoiner  
        joinNames.add("Rahul");  
        joinNames.add("Raju");  
  
        // 创建StringJoiner与:(冒号)分隔符 
        StringJoiner joinNames2 = new StringJoiner(":", "[", "]");  // passing colon(:) and square-brackets as delimiter   
          
        // Adding values to StringJoiner  
        joinNames2.add("Peter");  
        joinNames2.add("Raheem");  
  
        // 合并两个StringJoiner 
        StringJoiner merge = joinNames.merge(joinNames2);   
        System.out.println(merge);  
    }  
} 

输出结果为:

[Rahul,Raju,Peter:Raheem]

StringJoiner方法

import java.util.StringJoiner;  
public class StringJoinerExample {  
    public static void main(String[] args) {  
        StringJoiner joinNames = new StringJoiner(","); // passing comma(,) as delimiter   
          
        // 因为它是空的,所以什么也不打印 
        System.out.println(joinNames);  
          
        // 我们可以设置默认空值 
        joinNames.setEmptyValue("It is empty");  
        System.out.println(joinNames);  
          
          
        // 向StringJoiner添加值 
        joinNames.add("Rahul");  
        joinNames.add("Raju");  
        System.out.println(joinNames);  
          
        // 返回StringJoiner的长度  
        int length = joinNames.length();  
        System.out.println("Length: "+length);  
          
        // 返回StringJoiner作为字符串类型  
        String str = joinNames.toString();  
        System.out.println(str);  
          
        // 现在,我们可以对它应用字符串方法
        char ch = str.charAt(3);  
        System.out.println("Character at index 3: "+ch);  
          
        // 添加一个元素
        joinNames.add("Sorabh");  
        System.out.println(joinNames);  
          
        //返回长度
        int newLength = joinNames.length();  
        System.out.println("New Length: "+newLength);  
    }  
} 

输出结果为:

It is empty
Rahul,Raju
Length: 10
Rahul,Raju
Character at index 3: u
Rahul,Raju,Sorabh
New Length: 17

到此这篇关于Java8中StringJoiner类的使用详解的文章就介绍到这了,更多相关Java8 StringJoiner类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • springboot vue项目管理前后端实现编辑功能

    springboot vue项目管理前后端实现编辑功能

    这篇文章主要为大家介绍了springboot vue项目管理前后端实现编辑功能,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 将Java程序包打包为.exe文件的操作步骤

    将Java程序包打包为.exe文件的操作步骤

    将Java程序打包为为.exe文件分为俩个步骤:将Java程序打包成Jar包和打包为.exe文件,文中通过图文结合的方式给大家讲解的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2024-06-06
  • Spring Boot集成mongodb数据库过程解析

    Spring Boot集成mongodb数据库过程解析

    这篇文章主要介绍了Spring Boot集成mongodb数据库过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Java私有构造器使用方法示例

    Java私有构造器使用方法示例

    这篇文章主要介绍了Java私有构造器的含义、关键字,同时通过实例向大家展示其使用方法,需要的朋友可以参考下
    2017-09-09
  • 浅谈Java自定义类加载器及JVM自带的类加载器之间的交互关系

    浅谈Java自定义类加载器及JVM自带的类加载器之间的交互关系

    这篇文章主要介绍了浅谈Java自定义类加载器及JVM自带的类加载器之间的交互关系,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • ActiveMQ消息队列技术融合Spring过程解析

    ActiveMQ消息队列技术融合Spring过程解析

    这篇文章主要介绍了ActiveMQ消息队列技术融合Spring过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • SpringBoot中使用拦截器拦截跳转登录的两种实现方法

    SpringBoot中使用拦截器拦截跳转登录的两种实现方法

    拦截器(Interceptor)是Spring框架提供的一种机制,用于在请求的生命周期中插入自定义逻辑,如身份验证、日志记录等,本文将详细介绍两种在SpringBoot中使用拦截器来控制用户登录并跳转到指定页面的方法,需要的朋友可以参考下
    2024-11-11
  • 关于Java变量的声明、内存分配及初始化详解

    关于Java变量的声明、内存分配及初始化详解

    下面小编就为大家带来一篇关于Java变量的声明、内存分配及初始化详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • SpringBoot项目的logback日志配置(包括打印mybatis的sql语句)

    SpringBoot项目的logback日志配置(包括打印mybatis的sql语句)

    这篇文章主要介绍了SpringBoot项目的logback日志配置(包括打印mybatis的sql语句),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 浅谈Java中BigDecimal类的简单应用

    浅谈Java中BigDecimal类的简单应用

    这篇文章主要介绍了浅谈Java中BigDecimal类的简单应用,BigDecimal是由任意精度的整数非标度值和32位的整数标度组成,如果为零或正数,则标度是小数点后的位数,如果为负数,则将该数的非标度值乘以 10的负scale次幂,需要的朋友可以参考下
    2023-07-07

最新评论