时间:2020-12-03 16:43:20 | 栏目:JAVA代码 | 点击:次
在项目中,我们经常需要把接收到的字符串转换成对应的集合类保存,或者把集合类转换成字符串以方便传输,这个工具类中封装了几个常用的方法,对于这种转换需求十分方便。
import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Properties; import java.util.Set; import java.util.TreeSet; public class MyStringUtils { /** * 将字符串转换成set集合类 * 分隔符是任意空白字符 */ public static Set<String> parseParameterList(String values) { Set<String> result = new TreeSet<String>(); if (values != null && values.trim().length() > 0) { // the spec says the scope is separated by spaces String[] tokens = values.split("[\\s+]");//匹配任意空白字符 result.addAll(Arrays.asList(tokens)); } return result; } /** * 把集合转化成指定形式的字符串 */ public static String formatParameterList(Collection<String> value) { return value == null ? null : StringUtils.collectionToDelimitedString(value, ",");//指定分隔符 } /** * 从query的字符串中抽取需要的键值对存入map中 * query的形式name=god&password=111&method=up */ public static Map<String, String> extractMap(String query) { Map<String, String> map = new HashMap<String, String>(); Properties properties = StringUtils.splitArrayElementsIntoProperties( StringUtils.delimitedListToStringArray(query, "&"), "="); if (properties != null) { for (Object key : properties.keySet()) { map.put(key.toString(), properties.get(key).toString()); } } return map; } /** * 比较两个集合是否相等 */ public static boolean containsAll(Set<String> target, Set<String> members) { target = new HashSet<String>(target); target.retainAll(members);//取两个集合的交集 return target.size() == members.size(); } }