目录
3.\r\n (Carriage Return + Line Feed)
本篇文章来区分一下行结束符"\r","\n","\r\n"
行结束符
1.\r(Carriage Return)
代表回车符,它的ASCII码是13,通常用于将光标移动到当前行的开头。是在Mac OS(早期版本)中使用的行结束符,即此操作系统下,文本文件中,每行的结束通常由\r表示。
2.\n(Line Feed)
代表换行符,它的ASCII码是10,通常用于将光标移动到下一行。在Unix和Linux系统和现代Mac OS中使用的行结束符,即此操作系统下,文本文件中,每行的结束通常由\n表示。
3.\r\n (Carriage Return + Line Feed)
表示换行的字符序列。主要在Windows操作系统中使用,即此操作系统下,文本文件中的行结束通常由\r\n字符组成。
如下是C#脚本示例:
using UnityEngine;
public class Test04_1 : MonoBehaviour
{
private void Start()
{
string textWithCarriageReturn = "Line1\rLine2\rLine3";//\r回车符
string textWithLineFeed = "Line1\nLine2\nLine3";//\n换行符
string textWithCarriageReturnLineFeed = "Line1\r\nLine2\r\nLine3";//\r\n回车换行符
Debug.Log("Original Text with \\r:" + textWithCarriageReturn);
Debug.Log("Original Text with \\n:" + textWithLineFeed);
Debug.Log("Original Text with \\r\\n:" + textWithCarriageReturnLineFeed);
//替换所有行结束符为统一的格式\n
string normalizedText = textWithCarriageReturnLineFeed.Replace("\r\n", "\n").Replace("\r", "\n");
Debug.Log("Normalized Text:" + normalizedText);
//分割文本行
string[] lines = normalizedText.Split('\n');
Debug.Log("Split Lines:");
foreach (var line in lines)
{
Debug.Log(line);
}
}
}
注意事项:
当处理跨平台文本文件时,确保正确处理行结束符。大多数现代文本编辑器和IDE能够自动处理不同平台的换行符,但在处理文件时,最好了解目标平台的行结束规范(如可以通过行结束符来分割读取文本)。在一些编程环境中,行结束符的处理可能会自动调整,例如在读取文件时,操作系统或库可能会将所有行结束符转换为一种标准格式。
C和C++:通常使用\n表示行结束,但具体需要根据操作系统的行为来处理行结束符,或者在跨平台开发中自行处理换行符的转换。
C#:通常使用\r\n。对于跨平台应用,可以使用Environment.NewLine来确保系统兼容性。
好了,本次的分享就结束啦,希望对你有所帮助!