字符串/数组/List/Set转换

介绍

以String为例,记录字符串、数组、List、Set之间的转换。

目的是尽肯能的使用jdk提供的API, 少写代码。

主要使用的Java类Arrays,List/Set的toArray方法。

转换代码

package com.notepad.util;

import java.util.*;

/**
 * Description:  字符串,数组,ArrayList等相互转换(Java8)
 * <p>
 * Create:       2018/6/17 16:57
 *
 * @author Yang Meng([email protected])
 */
public class CollectionUtils {

    /**
     * 字符串转换为字符串数组
     *
     * @param content 字符串
     * @return 字符串数组
     */
    public static String[] string2Array(String content) {
        if (content == null || content.length() == 0) {
            return null;
        }
        return content.split(SEPARATE);
    }

    /**
     * 字符串数组转换为字符串
     *
     * @param stringArray 字符串数组
     * @return 字符串
     */
    public static String array2String(String [] stringArray) {
        if (stringArray == null) {
            return null;
        }
        return String.join(JOIN_FLAG, stringArray);
    }

    /**
     * 字符串数组转换为字符串List
     *
     * @param stringArray 字符串数组
     * @return 字符串List
     */
    public static List<String> array2List(String [] stringArray) {
        if (stringArray == null) {
            return null;
        }
        return Arrays.asList(stringArray);
    }

    /**
     * 字符串List转换为字符串数组
     *
     * @param stringList 字符串List
     * @return 字符串数组
     */
    public static String[] list2Array(List<String> stringList) {
        if (stringList == null) {
            return null;
        }
        return stringList.toArray(new String[0]);
    }

    /**
     * 字符串List转换为字符串Set
     *
     * @param stringList 字符串List
     * @return 字符串Set
     */
    public static Set<String> list2Set(List<String> stringList) {
        if (stringList == null) {
            return null;
        }
        return new HashSet<>(stringList);
    }

    /**
     * 字符串Set转换为字符串List
     *
     * @param stringSet 字符串Set
     * @return 字符串List
     */
    public static List<String> set2List(Set<String> stringSet) {
        if (stringSet == null) {
            return null;
        }
        return new ArrayList<>(stringSet);
    }

    private final static String SEPARATE = " ";
    private final static String JOIN_FLAG = " ";
}

单测代码

package com.notepad.util;

import org.junit.Assert;
import org.junit.Test;

import java.util.*;

/**
 * Description:  字符串转换测试
 * <p>
 * Create:       2018/6/17 17:07
 *
 * @author Yang Meng([email protected])
 */
public class CollectionUtilsTest {

    @Test
    public void string2array() {
        String content = "2018 端午节 快乐";
        String[] stringArray = CollectionUtils.string2Array(content);
        Assert.assertEquals(3, stringArray.length);
        System.out.println(stringArray.length);
        System.out.println(Arrays.toString(stringArray));
    }

    @Test
    public void array2string() {
        String [] con = {"2018", "俄罗斯", "世界杯"};
        System.out.println(CollectionUtils.array2String(con));
        Assert.assertEquals("2018 俄罗斯 世界杯", CollectionUtils.array2String(con));
    }

    @Test
    public void array2List() {
        String [] con = {"2018", "俄罗斯", "世界杯"};
        List<String> stringList = CollectionUtils.array2List(con);
        Assert.assertEquals(3, stringList.size());
        System.out.println(stringList);
    }

    @Test
    public void list2Array() {
        List<String> stringList = new ArrayList<>();
        stringList.add("2018");
        stringList.add("葡萄牙");
        stringList.add("3:0");
        stringList.add("西班牙");
        String [] strings = CollectionUtils.list2Array(stringList);
        Assert.assertEquals(4, strings.length);
        Assert.assertEquals("西班牙", strings[3]);
    }

    @Test
    public void list2Set() {
        List<String> stringList = new ArrayList<>();
        stringList.add("吃");
        stringList.add("葡萄");
        stringList.add("不吐");
        stringList.add("葡萄");
        Set<String> stringSet = CollectionUtils.list2Set(stringList);
        Assert.assertNotEquals(4, stringSet.size());
    }

    @Test
    public void set2List() {
        Set<String> stringSet = new HashSet<>();
        stringSet.add("吃");
        stringSet.add("葡萄");
        stringSet.add("不吐");
        stringSet.add("葡萄");
        List<String> stringList = CollectionUtils.set2List(stringSet);
        Assert.assertEquals(3, stringList.size());
    }
}

参考

  1. Java docs: Arrays, List, ArrayList, Set

猜你喜欢

转载自blog.csdn.net/ymaini/article/details/80720067