1 特殊字符转义—SQL模糊查询字段
package com.orange.utils;import org.apache.commons.lang3.StringUtils;import java.util.Arrays;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.stream.Collectors;/** * 字符串工具类 用于模糊查询 */public class StrUtil extends StringUtils { private static final Map<String,String> keyMap; /** * key --原字符 * value -- 替换后字符 */ static { keyMap = new HashMap<>(); keyMap.put("%","/%"); keyMap.put("_","/_"); keyMap.put("&","/&"); keyMap.put("'","/'"); keyMap.put(">","/%"); keyMap.put("<","/%"); keyMap.put("and","/"); keyMap.put("or","/"); } /** * 特俗字符转义--SQL模糊查询字段 * @param keyWord * @return */ public static String escapeExprSpecialWord(String keyWord){ if(StringUtils.isBlank(keyWord)){ return ""; } /** * 特殊字符转义--SQL模糊查询字段 */ List<String> list = Arrays.asList(keyWord.split("")).stream() .map(mo -> { for (Map.Entry<String, String> fo : keyMap.entrySet()) { String key = fo.getKey(); String value = fo.getValue(); if (key.equals(mo)) { mo = mo.replace(key, value); } } return mo; }).collect(Collectors.toList()); StringBuffer result = new StringBuffer(); list.forEach(s -> result.append(s)); return result.toString(); }}