是否可以确定 String 是否str1="ABCDEFGHIJKLMNOP"包含字符串模式strptrn="gHi"?我想知道当字符不区分大小写时这是否可能。如果是这样,怎么做?
str1="ABCDEFGHIJKLMNOP"
strptrn="gHi"
您可以使用
org.apache.commons.lang3.StringUtils.containsIgnoreCase(CharSequence str, CharSequence searchStr);
检查 CharSequence 是否包含搜索 CharSequence,不考虑大小写,处理 null。不区分大小写由 String.equalsIgnoreCase(String) 定义。 空 CharSequence 将返回 false。
检查 CharSequence 是否包含搜索 CharSequence,不考虑大小写,处理 null。不区分大小写由 String.equalsIgnoreCase(String) 定义。
空 CharSequence 将返回 false。
这将比正则表达式更好,因为 正则表达式在性能方面总是很昂贵 。
官方文档参考:StringUtils.containsIgnoreCase
更新 :
如果你是其中之一
regex/Pattern
toLowerCase
containsIgnoreCase您可以使用java.lang.String.regionMatches实现自己的自定义
containsIgnoreCase
public boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
ignoreCase: 如果为真,则在比较字符时忽略大小写。
ignoreCase
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; }