在C#中如何根据"\r\n"拆分字符串,当字符串值包含"\r\n\r\n"时。

6 浏览
0 Comments

在C#中如何根据"\r\n"拆分字符串,当字符串值包含"\r\n\r\n"时。

我有一个字符串

var str="\r\nFeatures\r\nWins\r\n\r\n";

我想按"\r\n"进行分割,但是在两个"\r\n\r\n"之间的值为空或者为空格

我想要得到3个结果项= Features Wins nullorwhitespace

我编写了这段代码,但是只得到了2个结果项= Features Wins

var val = str.TrimStart('\r', '\n', '\t').TrimEnd('\r', '\n', '\t').Split("\r\n");

0
0 Comments

问题原因:在C#中,当字符串值包含"\r\n\r\n"时,使用"\r\n"作为分隔符进行字符串拆分可能无法得到期望的结果。

解决方法:可以尝试以下方法进行字符串拆分,同时保留字符串开头和结尾的""字符。如果不需要保留这些字符,可以删除结果数组的第一个和最后一个元素。

var array = str.Split(new string[] { "\r\n" }, StringSplitOptions.None);
// array = ["","Features","","Wins",""]

参考链接:Split a string by another string in C#

0
0 Comments

问题的原因是在当前代码中,TrimEnd方法会去除所有末尾的\r\n字符。

解决方法是对字符串进行逐步修整,以达到所需的结果。下面是一个示例代码,可以得到您想要的结果。但是请注意,根据您对制表符的处理需求,该方法可能无法适用。

var str = "\r\nFeatures\r\nWins\r\n\r\n";
var val = str.TrimStart('\r') // "\nFeatures\r\nWins\r\n\r\n"
             .TrimStart('\n') // "Features\r\nWins\r\n\r\n"
             .TrimEnd('\n') // "Features\r\nWins\r\n\r"
             .TrimEnd('\r') // "Features\r\nWins\r\n"
             .Split("\r\n"); // ["Features", "Wins", ""]

通过以上代码,您可以得到以下结果:

Features

Wins

希望这能帮助到您解决问题。

0
0 Comments

问题的原因是字符串中含有连续的"\r\n\r\n"导致无法正确地按"\r\n"进行分割。解决方法是先将连续的"\r\n\r\n"替换为其他字符串,然后再按照"\r\n"进行分割。

以下是使用C#中的代码解决问题的方法:

var val = str
   .Replace("\r\n\r\n", "\r\nempty\r\n")
   .Split(new []{"\r\n"}, System.StringSplitOptions.RemoveEmptyEntries);

其中,`str`表示待分割的字符串。首先,使用`Replace`方法将连续的"\r\n\r\n"替换为"\r\nempty\r\n"。然后,使用`Split`方法按照"\r\n"进行分割,同时指定`StringSplitOptions.RemoveEmptyEntries`参数来移除空的分割结果。

这样,就可以正确地按照"\r\n"进行分割字符串,并得到分割后的结果。

0