Java教程

Converting a List to String in Java

本文主要是介绍Converting a List to String in Java,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

https://www.baeldung.com/java-list-to-string

 

Get started with Spring 5 and Spring Boot 2, through the Learn Spring course:

>> CHECK OUT THE COURSE

1. Introduction

 

In this quick tutorial, we'll explain how to convert a List of elements to a String. This can be useful in certain scenarios, like printing the contents to the console in a human-readable form for inspection/debugging.

2. Standard toString() on a List

 

One of the simplest ways is to call the toString() method on the List:

@Test
public void whenListToString_thenPrintDefault() {
    List<Integer> intLIst = Arrays.asList(1, 2, 3);
 
    System.out.println(intLIst);
}

Output:

[1, 2, 3]

This technique internally utilizes the toString() method of the type of elements within the List. In our case, we're using the Integer type, which has a proper implementation of the toString() method.

If we're using our custom type, such as Person, then we need to make sure that the Person class overrides the toString() method and doesn't rely on the default implementation. If we don't properly implement the toString() method, we might get unexpected results:

<iframe data-google-container-id="2" data-load-complete="true" frameborder="0" height="90" id="google_ads_iframe_/15184186,7114245/baeldung_leaderboard_mid_1_0" marginheight="0" marginwidth="0" name="google_ads_iframe_/15184186,7114245/baeldung_leaderboard_mid_1_0" scrolling="no" title="3rd party ad content" width="728"></iframe>
[org.baeldung.java.lists.ListToSTring$Person@1edf1c96,
  org.baeldung.java.lists.ListToSTring$Person@368102c8,
  org.baeldung.java.lists.ListToSTring$Person@6996db8]

3. Custom Implementation Using Collectors

 

Often, we might need to display the output in a different format.

Compared to the previous example, let's replace the comma (,) with a hyphen (-), and the square brackets ([, ]) with a set of curly braces ({, }):

@Test
public void whenCollectorsJoining_thenPrintCustom() {
    List<Integer> intList = Arrays.asList(1, 2, 3);
    String result = intList.stream()
      .map(n -> String.valueOf(n))
      .collect(Collectors.joining("-", "{", "}"));
 
    System.out.println(result);
}

Output:

{1-2-3}

The Collectors.joining() method requires a CharSequence, so we need to map the Integer to String. We can utilize this same idea with other classes, even when we don't have access to the code of the class.

4. Using an External Library

 

Now we'll use Apache Commons' StringUtils class to achieve similar results.

  SLING has Pro Football Ad by Sling TV    See More  

4.1. Maven Dependency

 
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.11</version>
</dependency>

The latest version of the dependency can be found here.

4.2. Implementation

 

The implementation is literally a single method call:

@Test
public void whenStringUtilsJoin_thenPrintCustom() {
    List<Integer> intList = Arrays.asList(1, 2, 3);
 
    System.out.println(StringUtils.join(intList, "|"));
}

Output:

1|2|3

Again, this implementation is internally dependent on the toString() implementation of the type we're considering.

5. Conclusion

 

In this article, we learned how easy it is to convert a List to a String using different techniques.

这篇关于Converting a List to String in Java的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!