在C#中如何根据"\r\n"拆分字符串,当字符串值包含"\r\n\r\n"时。
问题原因:在C#中,当字符串值包含"\r\n\r\n"时,使用"\r\n"作为分隔符进行字符串拆分可能无法得到期望的结果。
解决方法:可以尝试以下方法进行字符串拆分,同时保留字符串开头和结尾的""字符。如果不需要保留这些字符,可以删除结果数组的第一个和最后一个元素。
var array = str.Split(new string[] { "\r\n" }, StringSplitOptions.None); // array = ["","Features","","Wins",""]
问题的原因是在当前代码中,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
希望这能帮助到您解决问题。
问题的原因是字符串中含有连续的"\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"进行分割字符串,并得到分割后的结果。