介绍
以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());
}
}
参考
- Java docs: Arrays, List, ArrayList, Set