字符串/数组/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(eyangmeng@163.com)
 */
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(eyangmeng@163.com)
 */
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
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值