当前位置: 首页 > 面试题库 >

字符串包含-忽略大小写

张敏达
2023-03-14
问题内容

是否可以确定String是否str1="ABCDEFGHIJKLMNOP"包含字符串模式strptrn="gHi"?我想知道当字符不区分大小写时是否有可能。如果是这样,怎么办?


问题答案:

您可以使用

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;
}


 类似资料:
  • 问题内容: 我有两个,和。如何忽略大小写检查是否包含在其中? 问题答案:

  • 问题内容: 忽略大小写,比较Python中字符串的最简单方法是什么? 当然可以做到(str1.lower()<= str2.lower())等,但这会创建两个附加的临时字符串(明显的alloc / gc开销)。 我想我正在寻找一个等效于C的stricmp()。 [请求更多上下文,所以我将用一个简单的示例进行演示:] 假设您要排序一个完整的字符串列表。您只需执行List.sort()。这是O(n *

  • 问题内容: 我有一个列表,其中包含代表动物名称的字符串。我需要对列表进行排序。如果使用,它将首先使用大写字符串然后使用小写形式提供列表输出。 但是我需要下面的输出。 输入: 输出: 问题答案: 该方法和功能迈出了关键的参数: 为每个值调用名为in的函数,并在排序时使用返回值,而不会影响实际值: 要在之前进行排序,您必须在键中包含更多信息,以便以给定的顺序对相等的值进行排序: 为和为生成更复杂的密钥

  • 本文向大家介绍如何使用JSP忽略大小写检查输入字符串是否包含指定的子字符串?,包括了如何使用JSP忽略大小写检查输入字符串是否包含指定的子字符串?的使用技巧和注意事项,需要的朋友参考一下 的FN:containsIgnoreCase()函数确定的输入字符串是否包含指定的子串。在进行搜索时,它会忽略大小写。 语法 该FN:containsIgnoreCase()函数的语法如下- 示例 以下是解释fn

  • 问题 你需要以忽略大小写的方式搜索与替换文本字符串 解决方案 为了在文本操作时忽略大小写,你需要在使用 re 模块的时候给这些操作提供 re.IGNORECASE 标志参数。比如: >>> text = 'UPPER PYTHON, lower python, Mixed Python' >>> re.findall('python', text, flags=re.IGNORECASE) ['P

  • 我试图从图像URL字符串中删除大小规范,但似乎找不到解决方案。我不太了解正则表达式,所以我尝试了<code>[0-9x],但它只删除了url中的所有数字,而不仅仅是维度子字符串。我只想去掉像<code>110x61</code>这样的部分。 我想将我的字符串转换为: 对此: 我使用RegexPlanet来测试模式,但我提出的方法都不起作用……什么正则表达式可以解决我的问题?任何帮助都将不胜感激。删