我最近开始学习c#,所以我得到了一份学校作业,要制作一个德语语法帮助工具。这是一个小组任务,我的任务是:
应用程序从文件中加载预制句子,并随机对这些句子进行小的更改。例如,逗号可以被删除,ies
可以被i
取代,s
可以被ss
取代,等等。用户会看到更改后的句子,由他来查找错误。
我试着用绳子。替换并流式传输Reader/Writer,但它不起作用。
StreamReader reader = new StreamReader(File.OpenRead(@"C:UserskamilOneDriveDokumentetest grammatik.txt"));
string fileContent = reader.ReadToEnd();
reader.Close();
fileContent = fileContent.Replace("tier", "aff");
StreamWriter writer = new StreamWriter(File.OpenWrite("C:test grammatik.txt"));
writer.Write(fileContent);
writer.Close();
txt文件中的表示为:";Ein-grosses Tier";我想把";"层";用";Aff";这正是我所期望的,我得到了:
System.IO.IOException:'文件名、目录名或卷标语法不正确。:'C: \Users\kamil\source\repos\test\bin\Debug\netcoreapp3.1\est grammatik.txt''
行:
StreamWriter writer = new StreamWriter(File.OpenWrite("C:test grammatik.txt"));
[链接到我的文件]https://www.dropbox.com/s/p0r3us5o0ik0oju/test.zip?dl=0
问题出在这一行
StreamWriter writer = new StreamWriter(File.OpenWrite("C:test grammatik.txt"));
您需要制作"C:\test grammatik.txt"
或@"C:test grammatik.txt"
我也不建议你直接写信给c:root,你可能会遇到权限问题,所以制作一个临时文件夹来处理。
此外,正如评论中提到的@Panagiotis Kanavos,一个反斜杠被视为一个制表符,你可以通过一个双反斜杠或添加我的回答中提到的@符号来克服这一点。
replace函数要求字符,而不是字符串
public String Replace(char oldChar, char newChar);
在大多数语言中,字符串用"&";,另一方面,字符使用">
祝你的hw 好运