package cc.util.bossshop; import java.util.ArrayList; import java.util.Collection; import java.util.List; public class Function{ /** * 获取忽略大小写的指定前缀的字符串 *

如果指定的前缀为空时将返回全部的目标

* @param pStrs 搜索目标,不能为null * @param pPrefix 指定的前缀,不能为null * @param pIgnoreSame 是否忽略相同的字符串 */ public static Collection getSamePrefixIgnoreCase(Collection pStrs,String pPrefix,boolean pIgnoreSame){ return Function.getSamePrefix(pStrs,pPrefix,true,pIgnoreSame); } /** * 获取指定前缀的字符串
* 相同的字符串不作为拥有该前缀 *

如果指定的前缀为空时将返回全部的目标

* @param pStrs 搜索目标,不能为null * @param pPrefix 指定的前缀,不能为null * @param pIgnoreCase 是否忽略大小写 * @param pIgnoreSame 是否忽略相同的字符串 */ public static Collection getSamePrefix(Collection pStrs,String pPrefix,boolean pIgnoreCase,boolean pIgnoreSame){ ArrayList same=new ArrayList<>(); if(pStrs==null||pStrs.isEmpty()) return same; if(pPrefix==null||pPrefix.isEmpty()) return pStrs; if(pIgnoreCase){ pPrefix=pPrefix.toLowerCase(); for(String sStr : pStrs){ if(sStr==null) continue; String lowsStr=sStr.toLowerCase(); if(lowsStr.startsWith(pPrefix)&&(!pIgnoreSame||lowsStr.length()!=pPrefix.length())) same.add(sStr); } }else{ for(String sStr : pStrs){ if(sStr==null) continue; if(sStr.startsWith(pPrefix)&&(!pIgnoreSame||sStr.length()!=pPrefix.length())) same.add(sStr); } } return same; } /** * 指定位置是否存在忽略大小的指定字符串 * @param pStrs 目标位置,不能为null * @param pTarget 要查找的字符串,可以为null * @return 是否存在 */ public static boolean containsIgnoreCase(Collection pStrs,String pTarget){ if(pStrs==null) return false; if(pTarget==null) return pStrs.contains(pTarget); return Function.getIgnoreCase(pStrs,pTarget)!=null; } /** * 获取忽略大小的指定字符串 * @param pStrs 目标位置,不能为null * @param pTarget 要查找的字符串,不能为null * @return 查找到的字符串或者null */ public static String getIgnoreCase(Collection pStrs,String pTarget){ if(pStrs==null||pStrs.isEmpty()) return null; if(pTarget==null) return null; for(String sStr : pStrs) if(sStr!=null&&sStr.equalsIgnoreCase(pTarget)) return sStr; return null; } /** * 打印当前位置的堆栈 */ public static void printStackTrace(){ StackTraceElement[] elements=Thread.currentThread().getStackTrace(); for(StackTraceElement sElement : elements){ System.out.println(sElement.toString()); } } /** * 将数组转化成List * @param pArrays 要转换的数组,如果数组为null,将返回空List * @return 转换后的List,非null */ public static List asList(T[] pArrays){ ArrayList newList=new ArrayList<>(); if(pArrays==null||pArrays.length==0) return newList; for(T t : pArrays) newList.add(t); return newList; } }