该类是 org.apache.commons 的 commons-lang3 包下的类
StringUtils类与String类的区别在于:此类是null安全的,即如果输入参数String为null,则不会抛出NullPointerException异常,代码更健壮。
<dependency>
<groupId>org.apache.commonsgroupId>
<artifactId>commons-lang3artifactId>
<version>3.12.0version>
dependency>
StringUtils.isBlank(String str)StringUtils.isNotBlank(String str)StringUtils.isAnyBlank(CharSequence… css)StringUtils.isAllBlank(CharSequence… css)StringUtils.isNoneBlank(CharSequence… css)empty和blank的区别
- isEmpty 等价于 str == null || str.length == 0
- isBlank 等价于 str == null || str.length == 0 || str.trim().length == 0
- isNotEmpty等价于 a != null && a.length > 0
- isNotBlank 等价于 a != null && a.length > 0 && str.trim().length > 0
StringUtils.upperCase(String str)StringUtils.lowerCase(String str)StringUtils.swapCase(String str)StringUtils.remove(String str, String remove)StringUtils.removePattern(String source, String regex)StringUtils.split(String str)StringUtils.join(byte[] array,char separator)StringUtils.substring(String str,int start)StringUtils.substringAfter(String str,String separator)StringUtils.substringBetween(String str,String tag)StringUtils.equals(CharSequence cs1,CharSequence cs2)StringUtils.equalsIgnoreCase(CharSequence cs1,CharSequence cs2)<dependency>
<groupId>org.apache.commonsgroupId>
<artifactId>commons-collections4artifactId>
<version>4.4version>
dependency>
@Test
public void testUnion(){
String[] arrayA = new String[] { "A", "B", "C", "D", "E", "F" };
String[] arrayB = new String[] { "B", "D", "F", "G", "H", "K" };
List<String> listA = Arrays.asList(arrayA);
List<String> listB = Arrays.asList(arrayB);
//2个数组取并集
System.out.println(ArrayUtils.toString(CollectionUtils.union(listA, listB)));
//[A, B, C, D, E, F, G, H, K]
}
@Test
public void testIntersection(){
String[] arrayA = new String[] { "A", "B", "C", "D", "E", "F" };
String[] arrayB = new String[] { "B", "D", "F", "G", "H", "K" };
List<String> listA = Arrays.asList(arrayA);
List<String> listB = Arrays.asList(arrayB);
//2个数组取交集
System.out.println(ArrayUtils.toString(CollectionUtils.intersection(listA, listB)));
//[B, D, F]
}
@Test
public void testDisjunction(){
String[] arrayA = new String[] { "A", "B", "C", "D", "E", "F" };
String[] arrayB = new String[] { "B", "D", "F", "G", "H", "K" };
List<String> listA = Arrays.asList(arrayA);
List<String> listB = Arrays.asList(arrayB);
//2个数组取交集 的补集
System.out.println(ArrayUtils.toString(CollectionUtils.disjunction(listA, listB)));
//[A, C, E, G, H, K]
}
@Test
public void testSubtract(){
String[] arrayA = new String[] { "A", "B", "C", "D", "E", "F" };
String[] arrayB = new String[] { "B", "D", "F", "G", "H", "K" };
List<String> listA = Arrays.asList(arrayA);
List<String> listB = Arrays.asList(arrayB);
//arrayA扣除arrayB
System.out.println(ArrayUtils.toString(CollectionUtils.subtract(listA, listB)));
//[A, C, E]
}
ArrayUtils.contains(T[] array, T objectToFind)ArrayUtils.add(T[] array, T element)ArrayUtils.addAll(T[] array1, T[] array2)数组查找函数:
ArrayUtils.toMap(T[] array)ArrayUtils.toString(T[] array, String stringIfNull)
以上是 apache commons-lang3包和commons-collection4包下的常见API

public class UrlUtil {
public static Map<String, String> getUrlParams(String url) {
return getUrlParams(false, url);
}
public static Map<String, String> getUrlParams(boolean nameLowerCase, String url) {
Map<String, String> paramMap = new LinkedHashMap<>();
try {
URI uri = new URI(url);
String query = uri.getQuery();
String[] params = query.split("&");
for (String param : params) {
String name = param.substring(0, param.indexOf("="));
String value = param.substring(param.indexOf("=") + 1);
if (nameLowerCase) {
paramMap.put(name.toLowerCase(), value);
} else {
paramMap.put(name, value);
}
}
} catch (Exception e) {
log.error(String.format("解析URL:%s 参数出错", url), e);
}
return paramMap;
}
public static void main(String[] args) {
String url = "xxx";
Map<String, String> params = getUrlParams(url);
System.out.println(params);
}
}