如何在子字符串列表中找到子字符串的首次出现?

篮筐15

我有一个List<string>子字符串,它可能包含在较大的主字符串中可能不包含在其中。前任:

List<string> subStringList = new List<string>(){" at ", " @ "," near "," by "," above "};
List<string> searchStringList = new List<string>{
"GULF ISLAND POND NEAR LEWISTON, ME",
"South Branch Raritan River near High Bridge NJ",
"Susquehanna R near Browns Island at Dalmatia, PA",
"PARKS CREEK AT LYLE FIELD RD NEAR JEFFERSON, GA",
"HOMOSASSA R AT HOMOSASSA FL",
"ST. CLAIR RIVER NEAR ROBERTS LANDING, MI"
};

我想做的是找到其元素首先subStringList出现在给定的搜索字符串中,然后返回到该点的searchString。

例如:

List<string> riverList = new List<string>();
foreach (var seachString in searchStringList)
{
    string river = seachString.ToLower();
    int minIndex = int.MaxValue;
    foreach (var subString in subStringList.Select(r => r.ToLower()).AsEnumerable())
    {
         var index = river.IndexOf(subString);
         if (index != null && index > -1 && index < minIndex)
             minIndex = index;
     }
         riverList.Add(seachString.Substring(0,minIndex));
}

输出应如下所示:

[0]: "GULF ISLAND POND"
[1]: "South Branch Raritan River"
[2]: "Susquehanna R"
[3]: "PARKS CREEK"
[4]: "HOMOSASSA R"
[5]: "ST. CLAIR RIVER"

我的代码似乎可以正常工作,但是有没有更有效的方法来执行类似的操作?如何使用Linq来完成类似的操作?

克里斯·卡罗尔

这将是很好有一个过载String.IndexOfAny()是需要String[]的,而不是char[]这是我的:

searchStringList.Select(s => s.SubstringAsFarAsIndexOfAny(subStringList));


public static class stringExt
{
    public static int IndexOfAny(this string s, IEnumerable<string> anyOf, StringComparison stringComparisonType=StringComparison.CurrentCultureIgnoreCase) 
    {
        var founds= anyOf.Select(sub=> s.IndexOf(sub,stringComparisonType)).Where(i => i>=0);
        return founds.Any() ? founds.Min() : -1;
    }

    public static string SubstringAsFarAsIndexOfAny(this string s, IEnumerable<string> anyOf, StringComparison stringComparisonType=StringComparison.CurrentCultureIgnoreCase)
    {
        var foundIndex= s.IndexOfAny(anyOf,stringComparisonType);
        return foundIndex >=0 ? s.Substring(0, foundIndex) : s;
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在字符串列表中找到子字符串?

来自分类Dev

如何检查是否在字符串列表中找到子字符串

来自分类Dev

从字符串列表中找到相同子字符串的算法

来自分类Dev

在字符串列表中找到最常见的子字符串?

来自分类Dev

从字符串列表中找到相同子字符串的算法

来自分类Dev

如何在字符串列表中找到最长的字符串?

来自分类Dev

如何在Python的字符串列表中的特定字符后删除子字符串

来自分类Dev

如何在iOS中找到字符串并替换其子字符串?

来自分类Dev

如何在字符串中找到子字符串\',PHP

来自分类Dev

如何在字符串列表中找到主要字母

来自分类Dev

从字符串列表中找到最快的字符串

来自分类Dev

python在字符串中找到子字符串

来自分类Dev

如何在父字符串列表中查找与子字符串列表对应的索引

来自分类Dev

如何在字符串中找到子字符串并到达字符模式时结束子字符串(Python)

来自分类Dev

从字符串列表中删除子字符串

来自分类Dev

从字符串创建子字符串列表

来自分类Dev

遍历字符串列表以拉出子字符串

来自分类Dev

如何制作子字符串列表?

来自分类Dev

如何在字符串中找到一个以上的子字符串的位置(Python 3.4.3 shell)

来自分类Dev

如何在python的示例字符串中找到所有长度为k的重叠子字符串

来自分类Dev

如何在两个大的csv文件中找到字符串中的子字符串(Python)

来自分类Dev

在Python中找到字符串中的所有子字符串,如何使它更好?

来自分类Dev

如何使用Lambda在字符串列表的某些元素中执行子字符串

来自分类Dev

如何从 Python 中的字符串列表中提取动态子字符串?

来自分类Dev

如何使用Pyspark在另一列中找到子字符串列的位置?

来自分类Dev

如何在字符串中找到模式最后一次出现的位置,并使用这些位置从另一个字符串中提取子字符串

来自分类Dev

如何在字符串列表中查找出现最多的字符串?

来自分类Dev

检查字符串是否包含子字符串列表并保存匹配的子字符串列表

来自分类Dev

根据要删除的字符串列表删除字符串末尾的子字符串

Related 相关文章

  1. 1

    如何在字符串列表中找到子字符串?

  2. 2

    如何检查是否在字符串列表中找到子字符串

  3. 3

    从字符串列表中找到相同子字符串的算法

  4. 4

    在字符串列表中找到最常见的子字符串?

  5. 5

    从字符串列表中找到相同子字符串的算法

  6. 6

    如何在字符串列表中找到最长的字符串?

  7. 7

    如何在Python的字符串列表中的特定字符后删除子字符串

  8. 8

    如何在iOS中找到字符串并替换其子字符串?

  9. 9

    如何在字符串中找到子字符串\',PHP

  10. 10

    如何在字符串列表中找到主要字母

  11. 11

    从字符串列表中找到最快的字符串

  12. 12

    python在字符串中找到子字符串

  13. 13

    如何在父字符串列表中查找与子字符串列表对应的索引

  14. 14

    如何在字符串中找到子字符串并到达字符模式时结束子字符串(Python)

  15. 15

    从字符串列表中删除子字符串

  16. 16

    从字符串创建子字符串列表

  17. 17

    遍历字符串列表以拉出子字符串

  18. 18

    如何制作子字符串列表?

  19. 19

    如何在字符串中找到一个以上的子字符串的位置(Python 3.4.3 shell)

  20. 20

    如何在python的示例字符串中找到所有长度为k的重叠子字符串

  21. 21

    如何在两个大的csv文件中找到字符串中的子字符串(Python)

  22. 22

    在Python中找到字符串中的所有子字符串,如何使它更好?

  23. 23

    如何使用Lambda在字符串列表的某些元素中执行子字符串

  24. 24

    如何从 Python 中的字符串列表中提取动态子字符串?

  25. 25

    如何使用Pyspark在另一列中找到子字符串列的位置?

  26. 26

    如何在字符串中找到模式最后一次出现的位置,并使用这些位置从另一个字符串中提取子字符串

  27. 27

    如何在字符串列表中查找出现最多的字符串?

  28. 28

    检查字符串是否包含子字符串列表并保存匹配的子字符串列表

  29. 29

    根据要删除的字符串列表删除字符串末尾的子字符串

热门标签

归档