C# 如何删除字符串中的\n?
如何删除字符串中的C# 如何删除字符串中的\n?,c#,string,substring,C#,String,Substring,如何删除字符串中的\n 例如 输入:string s=“\n1234” 我想要的输出(但我无法实现):string s=“1234” 我尝试过的(但失败了): s.Remove(0,1) s.Trim() 补充说明: 我认为\n算作1char,因为当我尝试时: bool b = s[0]=='\n'; b=正确 可能不是fastes解决方案,但可以: string s = "\n1234".Replace("\n", String.Empty); 如果\n仅位于字符串的开头或结尾,则还可以使
\n
例如
string s=“\n1234”
string s=“1234”
s.Remove(0,1)代码>
s.Trim()代码>
\n
算作1char
,因为当我尝试时:
bool b = s[0]=='\n';
b=正确
可能不是fastes解决方案,但可以:
string s = "\n1234".Replace("\n", String.Empty);
如果\n
仅位于字符串的开头或结尾,则还可以使用“自定义修剪”
:
'\n'
不应该是必需的,因为它包含在默认的空白字符中,默认情况下会被Trim
删除。试一试:
string s = "\n1234";
s = s.Replace("\n", string.Empty);
您可以使用:
string s = "\n1234".TrimStart(new char[]{'\n'}); // search for \n at the start of the string
或
或
您没有将结果分配回字符串,否则您的
Trim
和Remove
都应该可以工作
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)
将删除第一个字符,而不管它是否为新行字符 您没有将结果分配回s
s.Trim()
应该像s=s.Trim()
Trim
一样工作,并且删除
不要在适当的位置修改字符串;它们返回一个新字符串。调用这些方法后是否重新分配了s
?“\”是转义字符。后跟“n”,表示“换行符”。当编译器读取源文件时,您键入的两个字符被编译器转换为单个字符。或者,当您有转义字符时,我会使用@
。在这种情况下,您为什么要转义?@SnakeEyes您错了,这是一个换行符(“\n”
),而不是实际的\n
(@\n
)“\n1234”.Replace(@“\n”
不正确。它试图通过查找文本来替换换行符\n
。它实际上是一个换行符,所以使用@
将是麻烦大于好处。谢谢,Snake愚弄了我的;)-你是对的。这次我测试了代码并Replace(“\n”,String.Empty)
确实有效…似乎我一直忘记分配trim返回值。叹气。感谢!+1将.trim()
的行为与字符串的不变性联系起来。
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
string newstr = s.Trim();
//OR
string newstr = s.Remove(0,1);