如何删除字符串中的\ n?

时间:2014-05-14 14:06:14

标签: c# string substring

如何删除字符串中的\n

E.g。

  1. 输入:string s = "\n1234"
  2. 我想要的输出(但我无法实现):string s = "1234"
  3. 我尝试过(并失败过):

    1. s.Remove(0,1);
    2. s.Trim();
    3. 附加说明:

      我认为\n计为1 char因为,当我尝试时:

      bool b = s[0]=='\n';
      
        

      b = true。

4 个答案:

答案 0 :(得分:6)

也许不是最好的解决方案,但有效:

string s = "\n1234".Replace("\n", String.Empty);

如果\n仅位于字符串的开头或结尾,您还可以使用“自定义Trim”:

string s = "\n1234".Trim('\n');

'\n'不应该是必需的,因为它包含在默认的空格字符中,默认情况下会被Trim删除。

答案 1 :(得分:3)

您没有将结果分配回字符串,否则TrimRemove都应该有效。

String是一个不可变类型,它的方法不会修改现有字符串,而是返回一个新字符串。因此,当您执行s.Remove(0, 1);s.Trim()时,它不会修改原始字符串,而是返回一个新字符串。

因此,对于您的情况,例如:

string newstr = s.Trim();
//OR
string newstr = s.Remove(0,1); 

应该有效。

但请记住s.Trim()会从字符串的开头或结尾删除任何类型的空格。如果那是您想要的行为,请使用它。

同样,您可以使用string.Replace,但这将替换字符串中出现的所有新行字符。

您的s.Remove(0,1)将删除第一个字符,而不管它是否是新行字符。

答案 2 :(得分:1)

试一试:

string s = "\n1234";

s = s.Replace("\n", string.Empty);

答案 3 :(得分:0)

您可以使用:

string s = "\n1234".TrimStart(new char[]{'\n'}); // search for \n at the start of the string

string s = "\n1234".TrimEnd(new char[]{'\n'});// search for \n at the end of the string

string s = "\n1234".Trim(new char[]{'\n'});// search for \n at the start and the end of the string