我正在运行一个类,其工作是通过html文档解析以获取一些信息。
在我的一个条件中,我最终得到了这个字符串:
"\r\n First Name:"
我想格式化字符串,以便我只有“名字:”,所以我这样做了:
string firstName = node.InnerText;
firstName = firstName.Replace(" ", "");
firstName = firstName.Replace("\\r", "");
firstName = firstName.Replace("\\n", "");
firstName.Trim();
但我最终拥有和以前一样的字符串。我对mvc-app比较陌生,我认为这可以胜任,但事实并非如此。我怎样才能实现目标?
谢谢!
*编辑*
我修改了我的代码,向您展示我到目前为止所做的工作,因为我想通知每个人第一行是有效的,但其余的都没有。我最终得到了这个字符串:
"\r\nFirst Name:"
答案 0 :(得分:6)
你需要将结果返回到firstName,因为字符串是不可变的,string.Replace
不会更改原始字符串而是会返回一个新字符串。
firstName = firstName.Replace(" ", "");
firstName = firstName.Replace("\r", "");
firstName = firstName.Replace("\n", "");
顺便说一句,您可以使用 string.Trim :
string firstName = "\r\n First Name:";
firstName = firstName.Trim();
因为String.Trim
会从字符串的开头和结尾删除所有空格,包括\r
和\n
修改强>
您需要使用单个反斜杠\r
而不是\\r
答案 1 :(得分:4)
您可以使用String.TrimStart
:
string firstName = "\r\n First Name:".TrimStart();
String.TrimStart
有效,因为Environment.NewLine
属于TrimStart
删除的white-space characters。它返回一个新字符串(字符串是不可变的),因此您需要使用返回值并将其分配给您的变量。
答案 2 :(得分:2)
答案 3 :(得分:0)
试试这个:
firstName = firstName.Trim();