在 Java 8 之前,连接一组字符串时,需要手动编写该代码,除此之外,需要重复使用分隔符,有时它会导致几个错误,但在 Java 8 之后,我们可以使用 StringJoiner 类和 String.join() 方法连接字符串,然后可以轻松实现目标。
示例:没有 StringJoiner 类和没有 String.join() 方法

方法:

  • 在这个程序中,不会使用 java 8,我们将尝试手动完成,并尝试了解字符串与分隔符连接的简单操作,需要多少更大的代码/步骤来实现我们的目标。
  • 首先,将连接三个字符串“DSA”,“FAANG”,“ALGO”,分隔符将是“gfg”为此,我们需要每次在添加下一个字符串之前编写分隔符。
  • 接下来,我们将连接包含字符串 “DSA”、“FAANG”、“ALGO” 的 ArrayList 元素,分隔符将是 “gfg”,为此我们需要遍历 ArrayList,然后使用分隔符添加字符串。
  • 请注意,对于 i=0,我们直接将字符串 joined2 分配给 ArrayList 的第一个元素,因为如果我们不放置这个条件,那么我们将得到这样的输出“gfg DSA Yii FAANG Yii ALGO”,而实际输出在 ArrayList 的第一个元素“DSA Yii FAANG Yii ALGO”之前没有分隔符。
  • 从代码中,可以看到为执行此简单任务编写了多少代码,将使用 StringJoiner 类和 String.join() 方法查找。
// Java program for joining the strings before Java8
// by simple method using '+' to concatenate

import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;

class YiibaiDemo {
    public static void main(String[] args)
    {
        // Here we need to join strings "DSA","FAANG","ALGO" 
        // and with delimiter " Yii " 
        String joined = "DSA" 
                        + " Yii " 
                        + "FAANG" 
                        + " Yii " 
                        + "ALGO";

        // Here we created an ArrayList of strings
        // ArrayList contains "DSA","FAANG","ALGO" 
        ArrayList<String> gfgstrings = new ArrayList<>(
            Arrays.asList("DSA", "FAANG", "ALGO"));

        String joined2 = "";

        // Now we will iterate over ArrayList
        for (int i = 0; i < gfgstrings.size(); i++) {

            // for i== 0 we do not want to add space before
            // first word thats why we checked for i=0
            if (i == 0) {
                joined2 = gfgstrings.get(i);
            }

            else {
                joined2 = joined2 + " Yii " + gfgstrings.get(i);
            }
        }

        // printing the first output
        System.out.println(joined);
        System.out.println("--------------------");
        // printing the second output
        System.out.println(joined2);
    }
}

运行结果:

DSA Yii FAANG Yii ALGO
--------------------
DSA Yii FAANG Yii ALGO

StringJoiner类

StringJoiner 用于构造由分隔符分隔的字符序列,可以选择以提供的前缀开头,以提供的后缀结尾。简而言之,在 StringJoiner 调用的构造函数中,可以传递三个参数分隔符、后缀、前缀。前缀将添加到字符串的开头,后缀将位于末尾。为了添加字符串,只需要在 StringJoiner 类上调用 add() 方法。

语法:

如果有后缀和前缀 -

StringJoiner joined=StringJoiner(delimiter,prefix,suffix)

joined.add(string1);
joined.add(string2);
joined.add(string3);

如果没有后缀和前缀

StringJoiner joined=StringJoiner(delimiter)

joined.add(string1);
joined.add(string2);
joined.add(string3);

方法:

如果要添加一组字符串,则需要创建 StringJoiner 类 Object 并传递分隔符、前缀、后缀。
这里的分隔符是“gfg”字符串,前缀是“[”,后缀是“]”。现在我们需要使用 add() 方法在 StringJoiner 类中添加字符串。
最后,将使用 toString() 方法将 StringJoiner 对象转换为 String 对象。
如果有字符串的 ArrayList,分隔符是“gfg”,前缀是“[”,后缀是“]”,将迭代 ArrayListStringJoiner 中的元素,然后转换为字符串对象。
最后,将打印输出。

使用StringJoiner类连接字符串的程序:

// Java program for joining the strings
// Using StringJoiner class

import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.StringJoiner;

class YiibaiDemo {
    public static void main(String[] args)
    {
        // Here we need to join strings "DSA","FAANG","ALGO"\n        // and with delimiter " Yii "\n        StringJoiner sj
            = new StringJoiner(" Yii ", "[", "]");

        sj.add("DSA");
        sj.add("FAANG");
        sj.add("ALGO");

        // Convert StringJoiner to String
        String joined = sj.toString();

        // Here we created an ArrayList of strings
        ArrayList<String> gfgstrings = new ArrayList<>(
            Arrays.asList("DSA", "FAANG", "ALGO"));

        // StringJoiner class having parameters
        // delimiter,prefix,suffix
        StringJoiner sj2
            = new StringJoiner(" Yii ", "[", "]");

        // Now we will iterate over ArrayList
        // and adding in string Joiner class
        for (String arl : gfgstrings) {
            sj2.add(arl);
        }

        // convert StringJoiner object to String
        String joined2 = sj2.toString();

        // printing the first output
        System.out.println(joined);
        System.out.println("--------------------");

        // printing the second output
        System.out.println(joined2);
    }
}

运行结果:

[DSA Yii FAANG Yii ALGO]
--------------------
[DSA Yii FAANG Yii ALGO]

String.join()方法

java.lang.string.join() 方法将给定元素与分隔符连接起来,并返回串联的字符串。请注意,如果元素为 null,则添加 null。join() 方法从 JDK 1.8 开始在 java 字符串中引入。String.join() 方法采用两个参数,第一个参数是分隔符,第二个参数可以是元素的列表或数组或由 ,(逗号) 分隔的元素。

语法:

在单个元素的情况下 -

String joined=String.join("delimiter","element1","element2,"element3"...);

在列表的情况下 -

String joined2=String.join("delimiter",listObject);

返回类型:它返回使用分隔符连接的字符串

示例:

方法:使用 String.join() 方法连接字符串

在这个例子中,对于单个字符串,需要在 join() 方法中传递分隔符和字符串。这里的分隔符是“gfg”,字符串是“DSA”,“FAANG”,“ALGO”。
String.join() 将返回使用分隔符连接的字符串。
对于 ArrayList,我们只需要在连接方法 join(“ Yii ”,listObject) 中传递分隔符和列表对象,这将返回在 ArrayList 的每个元素上使用分隔符连接的字符串。

// Java program for joining the strings
// Using String.join() method

import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.StringJoiner;

class YiibaiDemo {
    public static void main(String[] args)
    {
        // Here we need to join strings "DSA","FAANG","ALGO"\n        // and with delimiter " Yii " 

        String joined
            = String.join(" Yii ", "DSA", "FAANG", "ALGO");

        // Here we created an ArrayList of strings
        ArrayList<String> gfgstrings = new ArrayList<>(
            Arrays.asList("DSA", "FAANG", "ALGO"));

        String joined2 = String.join(" Yii ", gfgstrings);

        // printing the first output
        System.out.println(joined);

        System.out.println("--------------------");

        // printing the second output
        System.out.println(joined2);
    }
}

运行结果:

DSA Yii FAANG Yii ALGO
--------------------
DSA Yii FAANG Yii ALGO

在 Java 中StringJoiner类和String.join()方法连接字符串的示例

欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:在 Java 中StringJoiner类和String.join()方法连接字符串的示例
本文链接:https://www.vsdiffer.com/vs/stringjoiner-class-vs-string-join-method-to-join-string-in-java-with-examples.html
免责声明:以上内容仅代表 个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。