关于c#:换行将字符串拆分成多个字符串?

split strings into many strings by newline?

我有需要拆分为多个值的传入数据…即。

2345
564532
345634
234 234543
1324 2435

接收时长度不一致,存在时间距不一致,我要分析每个字符串之前的最后3位数字。如何断开字符串并将其转换为新字符串?就像我说的,这一轮可能有3个命令,下一次可能有10个,如何创建3个新字符串,分析它们,然后在下10个到来之前销毁它们?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
string[] result = x.Split('
'
);
result = x.Split(splitAtReturn, StringSplitOptions.None);
string stringToAnalyze = null;

foreach (string s in result)
{
    if (s !="
"
)
    {
        stringToAnalyze += s;
    }
    else
    {

          how do i analyze the characters here?
    }
}


您可以使用string.split方法。我特别建议使用使用可能分隔符的字符串数组的重载。这是因为换行符上的拆分是一个独特的问题。在您的示例中,所有换行符都只是一个'',但对于某些操作系统,换行符是'
',如果不能排除将两个字符放在同一文件中的可能性,则

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
string test ="2345
564532
345634
234 234543
1324 2435
"
;
string[] result = test.Split(new string[] {"
"
,"


<div class="
suo-content">[collapse title=""]<ul><li>我知道如何使用它,但我想将每个结果字符串都作为子字符串来处理,以便分析它们</li><li>子字符串在数组结果中,每个子字符串都在自己的索引中。对不起,不清楚,你能举个例子吗?</li><li>效果很好。谢谢大家!</li></ul>[/collapse]</div><hr>
[cc lang="
csharp"]string lines ="2345
564532
345634
234 234543
1324 2435
";
var last3Digits = lines.Split("


".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
                  .Select(line => line.Substring(line.Length - 3))
                  .ToList();

foreach(var my3digitnum in last3Chars)
{

}

最后3位:[345, 532, 634, 543, 435]


之前已经回答过,请检查此线程:在.NET中,在换行符上拆分字符串最简单的方法是什么?

另一种方法是使用StringReader:

1
2
3
using (System.IO.StringReader reader = new System.IO.StringReader(input)) {
    string line = reader.ReadLine();
}


您的答案是:theStringYouGot.Split('
');
,在这里您可以得到一个字符串数组来进行处理。