如何将文本文件中的行存储到数组中?

时间:2015-04-21 12:21:29

标签: c# text line

我有一个问题,我无法面对。我希望程序(如下所示)存储位于" temp_q.txt"中的问题的所有行。文件。例如,这是一个问题:

  C1:约翰史密斯是谁?

将问题的单词保存在数组中,然后如果它在" book"中找到了答案。我命名为" core.txt"它将在文本框中显示答案 以下是代码的一部分:

        private void button2_Click(object sender, EventArgs e)
    {
        if (File.Exists(@"C:\\Users\TEI\Desktop\temp_q.txt"))
        {
            //OK, pff..Now search for the question to answer!
            System.IO.StreamReader keytxt = new System.IO.StreamReader(@"C:\\Users\TEI\Desktop\temp_q.txt");
            String line;
            while ((line = keytxt.ReadLine()) != null)
            {
                if (line.Contains(textBox1.Text))    //If the question has been found...
                {
                    String ctrl1 = String.Empty;
                    ctrl1 = ("Line Found!Beginning Voice Transfer..");
                    richTextBox2.Text = ctrl1;
                    //Here i want to save the question word-by-word in an array.


                    //Begin searching for the right answer in the core



                }
            }

每一个小小的帮助都得到了回报! 提前谢谢!

1 个答案:

答案 0 :(得分:2)

为了将问题逐字保存到数组中,您可以在代码中简单地声明一个数组并将问题放入string变量中,并最终使用Split(' ')函数将其拆分为个别的话。像这样:

string question = "Who is John Smith?";
string[] words = new string[100];
words = question.Split(' ');

您可以在此处根据您的要求定义数组大小。这将解析单词之间存在的whitespaces整个问题。

更新:在Core.txt部分中找到单词:

现在,当您想要搜索该文本文件中的某个特定单词时,您可以遍历我们刚刚创建的数组,一次一个元素,在line对象中搜索匹配项。像这样:

for (int i = 0; i < words.Length; i++)
{
    if(line.Contains(words[i].ToString())) 
    {
      //put your logic here.
    }
}

希望这有帮助。