Java 8 - 将列表转换为字符串的例子

917 阅读3分钟

Java 8 - 将列表转换为字符串的例子

使用不同的方法和apache commons api将java中的列表转换为字符串的快速指南,并附有示例。

1.1.概述

在本教程中,我们将通过示例程序学习如何在java中把List转换为String

这种转换是通过java api方法的简单步骤完成的。

首先,我们将了解如何使用**toString()**方法将List转换成String。

接下来,使用 Java 8 Streams Collectors api
String.join()方法,用逗号分隔符或自定义分隔符将集合转为字符串。

最后,学习著名的库apache命令 StringUtils.join() 方法。

对于所有的例子,输入的列表必须是 List 类型的字符串,否则我们需要将非字符串转换为字符串。例如,List是Double的类型,那么需要先将Double转换为字符串。

2.使用标准toString()方法将列表转换成字符串

List.toString()是最简单的方法,但它在开头和结尾添加方括号,每个字符串用逗号隔开

缺点是我们不能用其他分隔符替换逗号,也不能删除方括号。

package com.javaprogramto.convert.list2string;
 
import java.util.Arrays;
import java.util.List;
 
/**
 * Example to convert List to string using toString() method.
 *
 * @author javaprogramto.com
 *
 */
public class ListToStringUsingToStringExample {
 
    public static void main(String[] args) {
         
    // creating a list with strings.
    List<String> list = Arrays.asList("One",
                      "Two",
                      "Three",
                      "Four",
                      "Five");
     
    // converting List<String> to String using toString() method
    String stringFromList = list.toString();
     
    // priting the string
    System.out.println("String : "+stringFromList);    
    }
}

输出

String : [One, Two, Three, Four, Five]

3.使用Java 8的String.join()方法将列表转换成字符串

上述程序在java 8之前和之后都可以工作。但是,java 8中的String增加了一个特殊的方法**String.join()**,可以将集合转换为带有指定分隔符的字符串。

下面的例子是在字符串中加入了管道和蒂尔德分隔符。

import java.util.Arrays;
import java.util.List;
 
/**
 * Example to convert List to string using String.join() method.
 *
 * @author javaprogramto.com
 *
 */
public class ListToStringUsingString_JoinExample {
 
    public static void main(String[] args) {
         
    // creating a list with strings.
    List<String> list = Arrays.asList("One",
                      "Two",
                      "Three",
                      "Four",
                      "Five");
     
    // converting List<String> to String using toString() method
    String stringFromList = String.join("~", list);
     
    // priting the string
    System.out.println("String with tilde delimiter: "+stringFromList);
     
    // delimiting with pipe | symbol.
    String stringPipe = String.join("|", list);
     
    // printing
    System.out.println("String with pipe delimiter : "+stringPipe);
     
    }
}

输出

String with tilde delimiter: One~Two~Three~Four~Five
String with pipe delimiter : One|Two|Three|Four|Five

4.使用Java 8 Collectors.join()方法将列表转为字符串

Collectors.join() 方法来自java 8 stream api。Collctors.join() 方法以定界符、前缀和后缀为参数。这个方法用给定的分隔符、前缀和后缀将列表转换为字符串。

看下面的例子,用不同的定界符连接()方法。但是,String.join()方法不提供前缀和后缀选项。

如果你需要一个自定义的分隔符、前缀和后缀,那么就用这些。如果你不需要前缀和后缀,那就提供空字符串,不要在结果字符串前后添加任何东西。

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
 
/**
 * Example to convert List to string using Collectors.joining() method.
 *
 * @author javaprogramto.com
 *
 */
public class ListToStringUsingString_JoinExample {
 
    public static void main(String[] args) {
         
    // creating a list with strings.
    List<String> list = Arrays.asList("One",
                      "Two",
                      "Three",
                      "Four",
                      "Five");
 
    // using java 8 Collectors.joining with delimiter, prefix and suffix
    String joiningString = list.stream().collect(Collectors.joining("-", "{", "}"));
     
    // printing
    System.out.println("Collectors.joining string : "+joiningString);
     
    String joiningString3 = list.stream().collect(Collectors.joining("@", "", ""));
     
    // printing
    System.out.println("Collectors.joining string with @ separator : "+joiningString3);
     
     
    }
}

输出

Collectors.joining string : {One-Two-Three-Four-Five}
Collectors.joining string with @ separator : One@Two@Three@Four@Five

5.使用Apache Commons StringUtils.join()方法将列表转换成字符串

最后一种方法是使用apache commons包的外部库。这个库有一个方法 StringUtils.join(),它接收列表和分隔符,类似于String.join()方法。

import org.apache.commons.lang3.StringUtils;
 
/**
 * Example to convert List to string using apache commons stringutils.join() method.
 *
 * @author javaprogramto.com
 *
 */
public class ListToStringUsingStringUtils_JoinExample {
 
    public static void main(String[] args) {
         
    // creating a list with strings.
    List<String> list = Arrays.asList("One",
                      "Two",
                      "Three",
                      "Four",
                      "Five");
 
    // using java 8 Collectors.joining with delimiter, prefix and suffix
    String joiningString = StringUtils.join(list, "^");
     
    // printing
    System.out.println("StringUtils.join string with ^ delimiter : "+joiningString);
     
    String joiningString3 = StringUtils.join(list, "$");
     
    // printing
    System.out.println("StringUtils.join string with @ separator : "+joiningString3);
     
     
    }
}

输出

StringUtils.join string with ^ delimiter : One^Two^Three^Four^Five
StringUtils.join string with @ separator : One$Two$Three$Four$Five

6.总结

在这篇文章中,我们已经看到了如何在java 8前后使用不同的方法将List转换为String

使用String.join()方法对一个给定的分隔符从List中生成字符串是很好的。

或者如果你想添加前缀或后缀,那么使用流api Collectors.join()方法,使用分隔符、前缀和后缀值