package com.amarsoft.aims.util; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import com.amarsoft.are.lang.StringX; /** * 字串通用工具处理类 * @author yangsong * @date 2014/06/18 * */ public class StringHelper { /** * 空串 * @param s 字串 * @param s1 字串为空时,返回的字串 * @return */ public static String nvl(String s,String s1){ if(StringX.isEmpty(s))return s1; return s; } /** * 连接字串 * @param strList * @param delimiter * @return */ public static String join(List strList,String delimiter){ StringBuilder sb = new StringBuilder(); for(int i=0;i sortSimilarity(String srcStr,double minRatio,String ...strList){ return sortSimilarity(srcStr,minRatio,Arrays.asList(strList)); } /** * 相似度匹配排序,比较和源字串的相似度,相似度最高的放到最前 * @param srcStr 源字串 * @param minRatio 最小匹配度,低于此值的,将不会出现到返回值中 * @param strList 目标字串列表 * @return */ public static List sortSimilarity(String srcStr,double minRatio,List strList){ List simList = new ArrayList(); //筛选 Map simMap = new HashMap(); for(int i=0;i0){ String s = getMaxKeyValue(simMap); if(s!=null)simList.add(s); } return simList; } private static String getMaxKeyValue(Map simMap){ if(simMap.size()==0)return null; String max = ""; Iterator iterator = simMap.keySet().iterator(); while(iterator.hasNext()){ String i = iterator.next(); if(i.compareTo(max)>0){ max = i; } } String r = simMap.get(max); simMap.remove(max); return r; } /** * 把字符串数组转化成SQL语句中的IN条件。 * 例如:list={1:"a",2:"b",3:"c"},转化成'a','b','c' * @param list * @return */ public static String getSqlFormatOfIn(List list){ String returnStr = ""; if (list == null) return "''"; for(String item : list) returnStr += "'" + item + "',"; if (returnStr.length() < 1) return "''"; return returnStr.substring(0, returnStr.length() - 1); } /** * 把带有分隔符的字符串转化成SQL语句中的IN条件。 * 例如:source="a,b,c",format=",",转化成'a','b','c' * @param source * @param format * @return */ public static String getSqlFormatOfIn(String source, String format){ if(StringX.isEmpty(format)) format = ","; return getSqlFormatOfIn(source.split(format)); } /** * 把字符串数组转化成SQL语句中的IN条件。 * 例如:strs={"a","b","c"},转化成'a','b','c' * @param strs * @return */ public static String getSqlFormatOfIn(String[] strs){ String returnStr = ""; for(String item : strs) returnStr += "'" + item + "',"; if (returnStr.length() < 1) return "''"; return returnStr.substring(0, returnStr.length() - 1); } }