[英]Unity C# Recognizing \n when reading in from text file
我有一个包含几行字符串的文本文件,例如“ Commander”和“ 44105”。 我将它们读入文件,然后将其显示在屏幕上。 我需要在某些点创建换行符,但是当我在文本文件中使用\\ n时,程序似乎无法识别为换行符,而只是在字符串上显示\\ n时才在字符串中显示\\ 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);
}
请注意,如果您尝试读取的文件很大,则ReadToEnd
可能对您不起作用,但为示例起见,它将起作用。 因此,这里的逻辑是读取字符串中的文本文件,然后使用字符串的Split
方法,该方法将给定的定界符数组拆分初始字符串并返回字符串数组, RemoveEmptyEntries
表示结果中将没有空字符串数组。 既然您已经确定了条目,则可以使用它们进行所需的操作,在这种情况下,我们将它们Trim
(这样就不会有开头和结尾的空格),并且将dataEntry追加到结果后,并换行(请注意,如果如果您有大量数据,则使用StringBuilder附加结果将是更好的性能选择,因为它比使用+附加字符串在此处添加更多信息更快: http : //support.microsoft.com/kb/306822 )
从文本文件读取时,流阅读器会识别换行符,并且如果您的文本文件带有几行文本,则您的方法将准确地读取换行符,但是,如果您的单个行文本文件中带有“ \\ n”,则没有区别而不是其他两个字符,例如,如果您的文本文件包含以下行:
“文字\\ 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");
}
}
请注意,两行注释也应为您工作,有关新行的更多信息,您可以检查以下链接: http : //social.msdn.microsoft.com/Forums/en-US/47af2197-26b4-4b9e- 90e8-bfa9d5cd05b4 / rn和rn-forum = csharplanage之间的区别是什么
希望对您有所帮助:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.