[英]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.