【问题标题】:How to check if a word contains a character within a string?如何检查一个单词是否包含字符串中的字符?
【发布时间】:2012-05-20 00:58:48
【问题描述】:

我正在尝试创建一个程序来读取包含域列表的文本文件,但它还有许多其他不必要的东西,例如标题、每个域的标题等。我想要的只是域.

现在,一个共同点是所有域都有一个“。”某处甚至两个。有没有办法检查该 .txt 文件中的 word 是否有“.”,然后将其添加到另一个字符串中?

我环顾四周,但我只找到 String Contains,而不是 word contains。

现在如果不存在,有没有办法将每个单词分成一个字符串数组,然后用 for 循环单独测试每个单词?

这是一个例子:

Domain list name the first domain ip magicdomain.com name the second domain ip magicdomain2.com
etc.

【问题讨论】:

  • 你能提供一个示例txt文件的内容吗?
  • 数据都是这样的一行?
  • 就是这样。对我来说不幸:(

标签: c# string word contains


【解决方案1】:

string.IndexOf 如果存在则返回传入的字符或字符串的索引,如果不存在则返回-1

if(word.IndexOf('.') > -1)
{
  // got a `.` do something with word
}

【讨论】:

    【解决方案2】:

    考虑这段代码:

            var words = text.Split(" ");
    
            foreach (var word in words)
                if (word.Contains("lookup"))
                    Console.WriteLine("found it");
    

    【讨论】:

    • 这看起来与我正在寻找的完全一样(我的第二个选项)。我现在就试试这个。
    【解决方案3】:

    获取字符串中的单词而不是检查每个单词是否有所需的字符

    从字符串中获取单词

    检查“正则表达式:如何从字符串中获取单词 (C#)”Link

    【讨论】:

      【解决方案4】:

      或者您可以为此使用正则表达式。谷歌的“域名正则表达式”,我发现this lib很有用

      相关SO:Using a C# regex to parse a domain name?

      【讨论】:

      • 我遇到了问题,所以我用正则表达式来解决它...现在我有 2 个问题。
      • Regex 有它自己的问题,但是一旦你得到了正确的 Regex 格式,它就像一个魅力!
      • 我并不是说它们没有用......但是如果他所做的只是寻找一个'。如果他的输入数据有任何类型的结构,我猜会有一个更简单的解决方案。
      • 我查了正则表达式,它很有趣,我可能不会在这个项目中使用它,但我会记住它。
      【解决方案5】:

      您确定只有域部分包含.

      是否有任何分隔符用于分隔同一行中的其他信息。

      如果不查看您的一些示例数据,很难提出建议,但如果您是域,则始终是一行中的第一件事,然后是空格。您可以使用 Substring 和 IndexOf 的组合来获取第一个标记词。

      line.Substring(0, line.IndexOf(' ')) 
      

      或者,您可以使用 string.Split() 方法根据某些分隔符对行进行标记。

      你能发布一些示例数据吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-25
        • 1970-01-01
        • 2016-02-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-21
        • 1970-01-01
        相关资源
        最近更新 更多