java - 如何确定一个字符串部分包含另一个字符串? (最好是Java)

标签 java string matching

我正在做一个java项目,需要确定一个字符串是否包含遵循以下逻辑的另一个字符串:

  • 包含“isstr”的父字符串“这是父字符串”应返回 true。因为“isstr”的所有字符都可以在保留子字符串顺序的父字符串中找到。
  • 包含应不区分大小写。

有没有人可以帮助我如何以简单有效的方式编写逻辑,或者任何库也非常感谢!

最佳答案

它可以像这样简单:

public boolean contains(final String base, final String search){
    final String baseLowerCase = base.toLowerCase(Locale.ENGLISH);
    for(final char c : search.toLowerCase(Locale.ENGLISH).toCharArray())
        if(baseLowerCase.indexOf(c) < 0)
            return false;
    return true;
}

例如:contains("这是父字符串", "isstr"); 返回true

您在这里几乎想要做的是将您正在搜索的String转换为您将在其中进行迭代的char[]。然后您要检查基本 String 是否包含该 char(使用 String#indexOf(char))。您希望在第一次出现不包含 char 时返回 false (这意味着 String#indexOf(char) 返回一个值 < 0 )

关于java - 如何确定一个字符串部分包含另一个字符串? (最好是Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19216398/

相关文章:

python - 如何统计模板匹配检测到的对象数量?

algorithm - 字典序最小的完美匹配

java - 为什么我的 ArrayList 创建一个对象的两个副本?

java - 出现错误 无法解析类型 java.util.Map$Entry

java - 如何收集必须像字符串一样格式化的数字?

php - 检查一个数组中某个键的值是否等于另一个数组中不同键的值

java - 最终变量和编译时间常数之间的差异

java - 编码参数异常

python - 如何在 Python 中获取字符的位置?

arrays - 如何比较golang中的两个[][]字符串数组