在C#中输入字符
本文关键字:字符 输入 | 更新日期: 2023-09-27 18:25:45
我有这个代码:
while(!sr1.EndOfStream)
{
radek1 = sr1.ReadLine();
Console.Write(radek1);
Console.WriteLine();
string[] split1 = radek1.Split(new char[] { ' ', '???' });
}
我从file.txt
中读取了一个字符串数组,需要用空格和回车分隔,所以我想交换这些?对于表示的内容,输入
输入的意思可能是New Line
。在大多数情况下,这将是你想要的:
string newLine = Environment.NewLine; //Updated to Sergey Volegov's suggested
在大多数情况下,Environment.NewLine
等于"'r'n"
,但有时它只是'n
,所以使用Environment.NewLine
更明智。
'r
是回车
CCD_ 8是一条新线路。
把它想象成一台打字机。您需要返回到行的开头('r
),然后向下一行('n
)
由于Environment.NewLine
是一个字符串,您将希望在String
s上使用Split
,而不是Char
s:
string[] split1 = radek1.Split(new string[] { " ", Environment.NewLine });
使用此:
Environment.NewLine.ToCharArray();
正如@Guffa所说,你也可以拥有:
string[] split1 = radek1.Split(new string[] { " ", Environment.NewLine }, StringSplitOptions.None));
第二个基于空间和新行进行拆分
然而,第一个单独由'r
和'n
分割。因此,为了获得正确的行为,您需要使用第二种方法。
这取决于文件的来源和创建方式。
如果它是在同一个系统上创建的,那么它很可能会使用该特定系统的本机换行组合,并且您可以使用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);