只读一个大字符串的一部分

时间:2014-07-02 09:08:20

标签: c# string stringreader

我有一个很大的字符串要读,它总是不同的,但是一个字总是一样的。单词是MESSAGE,所以如果我的字符串阅读器遇到该单词,则必须将整个字符串写入光盘。我做了一些代码,但它没有工作,if段永远不会触发,这里有什么问题?

string aLine;
StringReader strRead = new StringReader(str);
aLine = strRead.ReadLine();

if (aLine == "MESSAGE")
{
    //Write the whole file on disc
}

4 个答案:

答案 0 :(得分:6)

您可以使用包含,

if(aLine.Contains("MESSAGE")
{
}

答案 1 :(得分:2)

您可以使用String.Contains

if (aLine.Contains("MESSAGE"))

您也可以使用String.IndexOf但由于此处的索引不相关,因此最好使用Contains

if (aLine.IndexOf("MESSAGE") != -1)

如果您需要忽略大小写或Cultrue敏感度,那么IndexOf会为您提供重载方法,String.IndexOf(string value, StringComparison comparisonType)

if (aLine.IndexOf("MESSAGE", StringComparison.InvariantCultureIgnoreCase) != -1)

答案 2 :(得分:1)

您可以更改代码以使用Contains

            string aLine;
            StringReader strRead = new StringReader(str);
            aLine = strRead.ReadLine();

            if (aLine.Contains("MESSAGE"))
            {

              //Write the whole file on disc

            }

答案 3 :(得分:0)

我认为您可能正在寻找类似String.IndexOf的内容。在这种情况下,您可以使用以下内容:

if (aLine.IndexOf("MESSAGE") > -1)
{
    ....
}