In Java, you can join strings with StringJoiner, String's join method, StringBuilder, StringBuffer, String's concat method and + operator

Using Java 8+ StringJoiner

StringJoiner is used to join a sequence of strings by a delimiter

@Test
public void joinWithStringJoiners() {  
    StringJoiner stringJoiner = new StringJoiner(", ");

    stringJoiner.add("apple")
        .add("orange")
        .add("passion");

    String result = stringJoiner.toString();

    assertThat(result).isEqualTo("apple, orange, passion");
}

Using Java 8+ String's join method

String's join method is used to join an array or any Iterable collections like List or Set of strings by a delimiter

@Test
public void joinArrayOfStringsWithStringJoin() {  
    String[] arr = {"apple", "orange", "passion"};

    String result = String.join(", ", arr);

    assertThat(result).isEqualTo("apple, orange, passion");
}

@Test
public void joinListOfStringsWithStringJoin() {  
    List<String> lst = Arrays.asList("apple", "orange", "passion");

    String result = String.join(", ", lst);

    assertThat(result).isEqualTo("apple, orange, passion");
}

@Test
public void joinSetOfStringsWithStringJoin() {  
    Set<String> set = new LinkedHashSet<>(Arrays.asList("apple", "orange", "passion"));

    String result = String.join(", ", set);

    assertThat(result).isEqualTo("apple, orange, passion");
}

Using StringBuilder, StringBuffer, String's concat method or + operator

StringBuilder, StringBuffer, String's concat method and + operator do not support delimiter, we have to handle manually

@Test
public void joinStringsWithStringConcat() {  
    String joinedString = "apple"
        .concat(",")
        .concat("orange")
        .concat(";")
        .concat("passion");

    assertThat(joinedString).isEqualTo("apple, orange; passion");
}

Conclusion

In this tutorial, we learned various methods to join strings in Java. While StringJoiner and String's join methods support to join strings with delimiter, other methods offer more flexible. You can find the full source code as below