Unity C#从文本文件读入时识别\n

Unity C#从文本文件读入时识别\n,c#,io,unity3d,text-files,C#,Io,Unity3d,Text Files,我有一个包含几行字符串的文本文件,例如“Commander”和“44105”。我正在将它们读入一个文件,然后在屏幕上显示它们。我需要在某些点上创建换行符,但当我在文本文件中使用时,\n程序似乎无法识别为新行,而只是在字符串上显示时在字符串中显示 Reader = new StreamReader("Assets/CorrectAnswers.txt", Encoding.Default); while (!Reader.EndOfStream && turnOff == fals

我有一个包含几行字符串的文本文件,例如“Commander”和“44105”。我正在将它们读入一个文件,然后在屏幕上显示它们。我需要在某些点上创建换行符,但当我在文本文件中使用时,\n程序似乎无法识别为新行,而只是在字符串上显示时在字符串中显示

Reader = new StreamReader("Assets/CorrectAnswers.txt", Encoding.Default);
while (!Reader.EndOfStream && turnOff == false)
{
    lineReader = Reader.ReadLine();
    if (problemIndex == questionIndex)
    {
        answer = lineReader;
        turnOff = true;
    }
    questionIndex += 1;
}

那里的其他一切都很好,它只是不承认\n是一个特殊的角色。如果您能帮助我解决这个问题,我将不胜感激。

好的,在澄清问题之后,下面是对您有用的方法

List<string> lines = new List<string>();
using (StreamReader reader = new StreamReader("Assets/test.txt"))
{
    string lines = reader.ReadToEnd();
    Debug.Log(lines);

    var splitText = lines.Split(new string[] { "|" }, // "\\n" in your case 
        System.StringSplitOptions.RemoveEmptyEntries);

    string result = String.Empty;
    foreach (var dataEntry in splitText)
    {
        string dataToParse = dataEntry.Trim();
        result += dataToParse + Environment.NewLine;
    }

    Debug.Log(result);
}
请注意,这两个注释行也适用于您,有关新行的更多信息,请查看以下链接:


我希望它能有所帮助,请注意:)

我想你可能误解了我的问题-我并不是试图在一个文本文件中写入多个字符串,每个字符串都在自己的行上。相反,我试图读入一个包含换行符的长字符串,并让程序认识到,在字符串的这一点上,我想显示一个换行符。很抱歉,若我误解了你们的陈述。是的,我误解了这个问题,实际上我想知道你们想要实现的是这两件事中的哪一件:)我已经更新了我的答案,注意分隔符设置为“|”,但并没有理由不使用“\n”或任何其他字符串,只需确保数据中的某个位置不存在该字符串,如果使用反斜杠,则必须像“\\n”那样对其进行转义;)
List<string> dataToWrite = new List<string>(){
    "firstLine", "secondLine", "thirdLine"};

using (StreamWriter writer = new StreamWriter("Assets/testWrite.txt"))
{
    foreach (var line in dataToWrite)
    {
        writer.WriteLine(line);
        //writer.Write(line + Environment.NewLine);
        //writer.Write(line + "\r\n");
    }
}