您可以使用
org.apache.commons.lang3.StringUtils.containsIgnoreCase(CharSequence str, CharSequence searchStr);
检查CharSequence是否包含搜索CharSequence(不区分大小写),处理为null。不区分大小写由String.equalsIgnoreCase(String)定义。
空的CharSequence将返回false。
这将比regex更好,因为 regex 在性能方面 总是很昂贵 的。
有关官方文档,请参考:StringUtils.containsIgnoreCase
更新:
如果你是那些
- 不想使用Apache Commons库
- 不想使用昂贵的
regex/Pattern
基础解决方案, - 不想使用来创建其他字符串对象
toLowerCase
,
您可以
containsIgnoreCase使用java.lang.String.regionMatches实现自己的自定义
public boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
ignoreCase:如果为true,则在比较字符时忽略大小写。
public static boolean containsIgnoreCase(String str, String searchStr) { if(str == null || searchStr == null) return false; final int length = searchStr.length(); if (length == 0) return true; for (int i = str.length() - length; i >= 0; i--) { if (str.regionMatches(true, i, searchStr, 0, length)) return true; } return false;}


