您的位置:

集合转字符串的多方面阐述

一、集合转字符串拼接

1、集合转字符串是我们在开发中非常常见的操作。其中,最简单的方式是利用循环和字符串拼接的方式将集合中的元素拼接成一个字符串:

List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
String result = "";
for(String str: list){
    result += str;
}
System.out.println(result);    //输出结果:ABC

2、使用StringBuilder代替字符串拼接能够有效提升性能:

List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
StringBuilder sb = new StringBuilder();
for(String str: list){
    sb.append(str);
}
System.out.println(sb.toString());    //输出结果:ABC

3、使用Java 8的Stream API可以更简洁地实现集合转字符串的拼接:

List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
String result = list.stream().collect(Collectors.joining());
System.out.println(result);    //输出结果:ABC

二、集合转字符串数组

1、除了将集合中的元素拼接成一个字符串,我们还可以将集合转换为字符串数组:

List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
String[] arr = list.toArray(new String[list.size()]);
System.out.println(Arrays.toString(arr));    //输出结果:[A, B, C]

2、使用Java 8的Stream API可以更简洁地实现集合转字符串数组:

List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
String[] arr = list.stream().toArray(String[]::new);
System.out.println(Arrays.toString(arr));    //输出结果:[A, B, C]

三、集合转字符串方法

1、Java中提供了一些现成的方法来将集合转换为字符串,如:

List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
String result = StringUtils.join(list, ",");
System.out.println(result);    //输出结果:A,B,C

2、如果需求中需要指定集合元素的格式,则可以使用String.format()方法:

List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
String result = list.stream().map(i -> String.format("编号:%d", i)).collect(Collectors.joining(";"));
System.out.println(result);    //输出结果:编号:1;编号:2;编号:3

四、集合转为字符串

1、将集合转为字符串的方式有多种,我们可以使用Arrays.toString()方法:

List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
String result = Arrays.toString(list.toArray());
System.out.println(result);    //输出结果:[A, B, C]

2、我们还可以使用JSON库将集合转换为常见的JSON字符串格式:

List<User> userList = new ArrayList<>();
userList.add(new User("Tom", 18));
userList.add(new User("Jerry", 20));
String result = new Gson().toJson(userList);
System.out.println(result);    //输出结果:[{"name":"Tom","age":18},{"name":"Jerry","age":20}]

五、集合转json字符串

1、如果我们需要将集合转换为JSON格式的字符串,可以使用JSON库中提供的方法:

List<User> userList = new ArrayList<>();
userList.add(new User("Tom", 18));
userList.add(new User("Jerry", 20));
String result = JSONObject.toJSONString(userList);
System.out.println(result);    //输出结果:[{"age":18,"name":"Tom"},{"age":20,"name":"Jerry"}]

2、使用Jackson库也可以将集合转换为JSON格式字符串:

List<User> userList = new ArrayList<>();
userList.add(new User("Tom", 18));
userList.add(new User("Jerry", 20));
ObjectMapper mapper = new ObjectMapper();
String result = mapper.writeValueAsString(userList);
System.out.println(result);    //输出结果:[{"name":"Tom","age":18},{"name":"Jerry","age":20}]

六、string集合转字符串

1、string集合转字符串最简单的方式是使用String.join()方法:

List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
String result = String.join("", list);
System.out.println(result);    //输出结果:ABC

2、我们也可以使用StringUtils.join()方法转换:

List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
String result = StringUtils.join(list.toArray(), "");
System.out.println(result);    //输出结果:ABC

七、字符串集合转字符串

1、字符串集合转字符串可以使用String.join()方法实现:

List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
String result = String.join("", list);
System.out.println(result);    //输出结果:ABC

2、我们也可以使用StringUtils.join()方法:

List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
String result = StringUtils.join(list.toArray(), "");
System.out.println(result);    //输出结果:ABC

八、集合内容转字符串

1、如果集合内容是自定义对象,我们可以重写对象的toString()方法实现:

public class User{
    private String name;
    private int age;
    @Override
    public String toString(){
        return "姓名:" + name + ",年龄:" + age;
    }
}
List<User> userList = new ArrayList<>();
userList.add(new User("Tom", 18));
userList.add(new User("Jerry", 20));
String result = StringUtils.join(userList.toArray(), "\n");
System.out.println(result); 
//输出结果:
//姓名:Tom,年龄:18
//姓名:Jerry,年龄:20

2、我们也可以使用Java 8的Stream API对集合内容进行拼接:

List<User> userList = new ArrayList<>();
userList.add(new User("Tom", 18));
userList.add(new User("Jerry", 20));
StringBuilder sb = new StringBuilder();
userList.stream().forEach(user -> sb.append(user.getName()).append(" "));
System.out.println(sb.toString());    //输出结果:Tom Jerry

九、list集合转json字符串

1、除了使用JSON库,我们还可以使用Java 8的Stream API将list集合转为JSON字符串:

List<User> userList = new ArrayList<>();
userList.add(new User("Tom", 18));
userList.add(new User("Jerry", 20));
String result = "["
             + userList.stream().map(user -> "{\"name\":\"" + user.getName() + "\",\"age\":" + user.getAge() + "}")
             .collect(Collectors.joining(","))
             + "]";
System.out.println(result);   //输出结果:[{"name":"Tom","age":18},{"name":"Jerry","age":20}]

2、使用Gson库将list集合转为JSON字符串:

List<User> userList = new ArrayList<>();
userList.add(new User("Tom", 18));
userList.add(new User("Jerry", 20));
String result = new Gson().toJson(userList);
System.out.println(result);   //输出结果:[{"name":"Tom","age":18},{"name":"Jerry","age":20}]