Java特殊字符转义(非常简单)

需求:
MongoDB或者Solr引擎在查询数据的时候,如果存在特殊字符(?$.[等),查询不出数据或者查询出来的数据是不准确的,这个时候就需要对特殊字符进行转义。

核心代码如下:

/**
	 * solr检索时,转换特殊字符
	 * 
	 * @param s 需要转义的字符串
	 * @return 返回转义后的字符串
	 */
	public static String escapeQueryChars(String s) {
		if (StringUtils.isBlank(s)) {
			return s;
		}
		StringBuilder sb = new StringBuilder();
		//查询字符串一般不会太长,挨个遍历也花费不了多少时间
		for (int i = 0; i < s.length(); i++) {
			char c = s.charAt(i);
			// These characters are part of the query syntax and must be escaped
			if (c == '\\' || c == '+' || c == '-' || c == '!' || c == '(' || c == ')' 
				|| c == ':' || c == '^'	|| c == '[' || c == ']' || c == '\"' 
				|| c == '{' || c == '}' || c == '~' || c == '*' || c == '?'
				|| c == '|' || c == '&' || c == ';' || c == '/' || c == '.' 
				|| c == '$' || Character.isWhitespace(c)) {
				sb.append('\\');
			}
			sb.append(c);
		}
		return sb.toString();
	}

猜你喜欢

转载自blog.csdn.net/weixin_40584261/article/details/88756970
今日推荐