我正在关注这篇文章
我想出了这段代码:
string FileName = "C:\\test.txt";
using (StreamReader sr = new StreamReader(FileName, Encoding.Default))
{
string[] stringSeparators = new string[] { "\r\n" };
string text = sr.ReadToEnd();
string[] lines = text.Split(stringSeparators, StringSplitOptions.None);
foreach (string s in lines)
{
Console.WriteLine(s);
}
}
Run Code Online (Sandbox Code Playgroud)
以下是示例文本:
somet interesting text\n
some text that should be in the same line\r\n
some text should be in another line
Run Code Online (Sandbox Code Playgroud)
这是输出:
somet interesting text\r\n
some text that should be in the same line\r\n
some text should be in another line\r\n
Run Code Online (Sandbox Code Playgroud)
但我想要的是这个:
somet interesting textsome text that should be in the same line\r\n
some text should be in another line\r\n
Run Code Online (Sandbox Code Playgroud)
我想我应该得到这个结果,但不知怎的,我错过了一些东西......
Mag*_*nus 52
问题不在于分裂,而在于分裂WriteLine.\n打印出的字符串中的A WriteLine将产生"额外"线.
例
var text =
"somet interesting text\n" +
"some text that should be in the same line\r\n" +
"some text should be in another line";
string[] stringSeparators = new string[] { "\r\n" };
string[] lines = text.Split(stringSeparators, StringSplitOptions.None);
Console.WriteLine("Nr. Of items in list: " + lines.Length); // 2 lines
foreach (string s in lines)
{
Console.WriteLine(s); //But will print 3 lines in total.
}
Run Code Online (Sandbox Code Playgroud)
\n在打印字符串之前解决问题.
Console.WriteLine(s.Replace("\n", ""));
Run Code Online (Sandbox Code Playgroud)
小智 7
这对我有用。
using System.IO;
//
string readStr = File.ReadAllText(file.FullName);
string[] read = readStr.Split(new char[] {'\r','\n'},StringSplitOptions.RemoveEmptyEntries);
Run Code Online (Sandbox Code Playgroud)
我采用了一种更紧凑的方法,将文本区域产生的输入拆分为 string 列表。如果适合您的目的,您可以使用它。
问题是你不能按 \r\n 分割,所以我事先删除了 \n 并仅按 \r 分割
var serials = model.List.Replace("\n","").Split('\r').ToList<string>();
Run Code Online (Sandbox Code Playgroud)
我喜欢这种方法,因为只需一行即可完成。
我认为问题出在您的文本文件中。它可能已经分成太多行,当您阅读时,它会“添加”其他\r和/或\n字符(因为它们存在于文件中)。检查您读入text变量的内容。
下面的代码(在带有文本的局部变量上)可以正常工作,并分成两行:
string[] stringSeparators = new string[] { "\r\n" };
string text = "somet interesting text\nsome text that should be in the same line\r\nsome text should be in another line";
string[] lines = text.Split(stringSeparators, StringSplitOptions.None);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
95598 次 |
| 最近记录: |