Java 把常用和好用的方法记录下来
1、将逗号分隔的字符串转换为List
List<String> list = Arrays.asList(str.split(","));
2、将List转换为逗号分隔的字符串
// (1) 利用Guava的Joiner
String str1 = Joiner.on(",").join(list);
// (2) 利用Apache Commons的StringUtils
String str2 = StringUtils.join(list.toArray(), ",");
// (3)JDK1.8方法
String str3 = String.join(",", list);
3、检查一个列表是否包含另一个列表中的元素
List<Object> list1 = new ArrayList<>;
List<Object> list2 = new ArrayList<>;
// 判断是否相交
if(!Collections.disjoint(list1, list2)){
// 相交则存在重复
...
}
4、获取String中第N次出现某个字符的位置
import org.apache.commons.lang3.StringUtils;
// str为传入字符串,"["为查找的元素,index为第几次出现
int indexFront = StringUtils.ordinalIndexOf(str, "[", index);
int indexEnd = StringUtils.ordinalIndexOf(str, "]", index+1);
5、截取String字符串
// frontStr为起始到indexFront位置包含需要查询的"[",如不需要"[",则(0, indexFront)
// endStr 为indexFront位置到结束位置包含需要查询的"]",如不需要"[",则(indexEnd+1, content.length())
String frontStr = str.substring(0, indexFront+1);
String endStr = str.substring(indexEnd, content.length());
6、获取[]中内容
import java.util.regex.Matcher;
import java.util.regex.Pattern;
// 通过正则来提取[]中内容
List<String> list = new ArrayList<>();
// 需要的正则
Pattern p = Pattern.compile("(\\[[^\\]]*\\])");
// str需要提取的字符串
Matcher m = p.matcher(str);
while(m.find()){
list.add((m.group().substring(1, m.group().length()-1)).trim());
}
7、List去重
List<String> list = new ArrayList<>;
// Java8特性去重
List<String> distinctList = list.stream().distinct().collect(Collectors.toList());
// 利用set集合特性保持顺序一致去重
List<String> treeList = new ArrayList<>(new TreeSet<String>(list));
List<String> linkedList = new ArrayList<>(new LinkedHashSet<String>(list));