/** * 拼装SQL工具方法 * 一般用于SQL中的in关键字后 * 本方法可以对字符串数组进行拼装,拼装为类似('1','2''3')的字符串(不包含括号)并返回。 * @param stringList 字符串数组 * @return 拼装后的字符串 */ public static String assemblySqlInString(List<String> stringList){ String result = ""; Integer stringListSize = 0; if(stringList != null && stringList.size() > 0){ stringListSize = stringList.size(); }else{ return null; } if(stringList != null){ for(int i = 0; i < stringListSize; i++){ result = result + "'" + stringList.get(i) + "'"; if(i != stringList.size() - 1){ result += ","; } } }else{ return null; } return result; }
/** * 此方法用于把表中的NO字段进行切分拼接,直到拼接完成为止。 * 如string = "001001001",则结果为:'001','001001','001001001' * @param string 需要切分的字符串 * @param step 步进,如上面的例子,步进为3. * @return 切分拼装后的string */ public String assemblySqlInString(String string, Integer step){ String resultString = ""; if(StringUtil.validateString(string)){ Integer stringLength = string.length(); Integer cycles = 0; /* 根据步进计算需要循环多少次 */ if(step != 0){ cycles = stringLength / step; }else{ return null; } /* 每次循环首先把字符串进行拼接 再把字符串通过步进进行切割 循环 */ for(int i = 0; i < cycles; i++){ resultString = resultString + "'" + string + "'"; if(i != cycles - 1){ resultString += ","; } string = string.substring(0, stringLength - step); stringLength = string.length(); } } return resultString; }