在C#中输入字符

时间:2014-10-05 16:52:09

标签: c# input enter

我有这段代码:

while(!sr1.EndOfStream)
{
    radek1 = sr1.ReadLine();
    Console.Write(radek1);
    Console.WriteLine();
    string[] split1 = radek1.Split(new char[] { ' ', '???' });
}

我从file.txt读取一个字符串数组,我需要用空格和进入分割,所以我想交换这些?代表输入

的内容

3 个答案:

答案 0 :(得分:5)

通过输入,您可能意味着New Line。 在大多数情况下,这将是您正在寻找的:

string newLine = Environment.NewLine; //Updated to Sergey Volegov's suggested

在大多数情况下,Environment.NewLine等于"\r\n",但有时只有\n,因此使用Environment.NewLine更明智。

\r是回车 \n是一个新行。

将其视为打字机。你需要回到行的开头(\r),然后回到一行(\n

由于Environment.NewLine是一个字符串,您需要Split上的String,而不是Char s:

string[] split1 = radek1.Split(new string[] { " ", Environment.NewLine });

答案 1 :(得分:2)

使用此:

Environment.NewLine.ToCharArray();

正如@Guffa还说你也可以:

string[] split1 = radek1.Split(new string[] { " ", Environment.NewLine }, StringSplitOptions.None));  

第二个基于空格和新线分割 但是,第一个分别按\r\n分割。所以对于正确的行为,您要使用第二种方法。

答案 2 :(得分:2)

这取决于文件的来源以及文件的创建方式。

如果它是在同一系统上创建的,它很可能会使用该特定系统的原生换行组合,并且您可以使用Environment.NewLine常量:

string[] split1 = radek1.Split(new string[] { " ", Environment.NewLine }, StringSplitOptions.None);

请注意,Environment.NewLine是一个字符串,可以包含多个字符,因此您需要拆分字符串,并且调用需要StringSplitOptions参数,因为没有它就没有重载。

如果文件来自不同的系统(或者是使用不同系统的典型换行创建的),则需要指定该特定字符串。例如,Windows系统中使用的两个字符串:

string[] split1 = radek1.Split(new string[] { " ", "\r\n" }, StringSplitOptions.None);

如果您需要处理来自不同系统的文件,您还可以包含最常见的换行组合:

string[] split1 = radek1.Split(new string[] { " ", "\r\n", "\n" }, StringSplitOptions.None);