簡體   English   中英

Streamwriter-.txt文件的字符串數組

[英]Streamwriter - Array of strings to .txt file

我一直在從事一個項目,我需要將單詞數組打印到文本文件的一行上,並在該行上放置一個正數。 我過去曾經使用過Streamwriters,所以我打算為此再次使用它,但是我似乎無法用它來編寫文本文件。 下面是代碼:

 public partial class Form2 : Form
{
    string sentence;
    String[] words;
    int a;
    bool wordAppear;
    string textbox2;
    string path;
    public Form2()
    {
        InitializeComponent();
        path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
    }

    private void btn1_Click(object sender, EventArgs e)
    {
        sentence = txt1.Text.ToLower();
        words = sentence.Split();
        a = words.Length;
        MessageBox.Show("Number of Words: " + a);
        StreamWriter sw = new StreamWriter(path + @"\file1000.txt");
        for (int i=0; i < a; i++)
        {
            sw.WriteLine(words[i] + " " + i+1);
        }
    }
}

我的部分任務是列出單詞首次出現的順序,例如,如果句子是“我有二十個人,有二十把錘子”,則順序為1 2 3 4 5 3 6,因此,如果有人對操作方法有任何想法這可以請你建議他們嗎

這應該工作(假設ASCII字符串):

var xs = "I have twenty men with twenty hammers".ToLower().Split();
var memo = new Dictionary<string, int>();

for (var i = 0; i < xs.Length; i++)
{
    var index = 0;

    if(!memo.TryGetValue(xs[i], out index))
        memo.Add(xs[i], i + 1);
}

using(var sw = new StreamWriter(SOME_PATH));
    foreach(var x in xs)
        sw.WriteLine(x + " " + memo[x]);

我認為您需要使用Close()方法將其包裝起來,並且還要對... WriteLine()函數進行一些不同的處理。 希望這可以幫助。

    ...
    words = sentence.Split( );
    a = words.Length;
    MessageBox.Show("Number of Words: " + a);
    StreamWriter sw = new StreamWriter(path + @"\file1000.txt");
    for (int i = 0; i < a; i++)
    {
        sw.WriteLine(words[i] + " " + (i + 1).ToString());
    }

    sw.Close();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM