如何正确地替换我们的函数

本文关键字:函数 我们 替换 正确地 | 更新日期: 2023-09-27 17:59:30

尽管我给出的代码有问题,但仍试图使用.replace函数来删除中断(<br></br>)。

以下是我正在处理的内容。

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream());
var rawStream = sr.ReadToEnd();
sr.Close();
var myBuilder = new StringBuilder();
myBuilder.AppendLine("Employee Name : " + rawStream.Between("<span id='"Label_DisplayFullName'">", "</span>"));
myBuilder.AppendLine("Title: " + rawStream.Between("<span id='"Label_Title'">", "</span>"));
myBuilder.AppendLine("Location : " + rawStream.Between("<span id='"Label_Location'">", "</span>"));
myBuilder.AppendLine("Department : " + rawStream.Between("<span id='"Label_Department'">", "</span>"));
myBuilder.AppendLine("Group: " + rawStream.Between("<span id='"Label_Group'">", "</span>"));
myBuilder.AppendLine("Office Phone : " + rawStream.Between("<span id='"Label_IntPhoneNumber'">", "</span>"));
myBuilder.AppendLine("Mobile Phone : " + rawStream.Between("<span id='"Label_BusMobile'">", "</span>"));
richTextBox1.Text = myBuilder.ToString();

虽然我知道功能应该是这样的:

public string Replace( string oldValue, string newValue )

我只是不明白这在我的代码中是如何工作的,因为我没有真正的"字符串",但我有一个字符串生成器。

任何援助都将是巨大的。

如何正确地替换我们的函数

所有StringBuilder的东西与删除中断有什么关系?您的字符串在rawStream变量中(名称很糟糕)(这就是ReadToEnd()给您的),所以您只需要:

rawStream = rawStream.Replace("<br>", "");
rawStream = rawStream.Replace("<br />");

您可以做两件事:

一方面,您确实使用StringBuilder组装字符串,但是,当您调用myBuilder.ToString()时,您最终将该字符串生成器的内容转换为string。这就是您可以调用Replace:的地方

richTextBox1.Text = myBuilder.ToString().Replace("<br>", "").Replace("</br>", "");

或者,StringBuilder有自己的Replace方法,因此您可以在将字符串生成器内容转换为字符串之前调用

myBuilder.Replace("<br>", "");
myBuilder.Replace("</br>", "");

请注意,后者也可以以链式方式调用,尽管这可能不太可读:

richTextBox1.Text = myBuilder.Replace("<br>", "").Replace("</br>", "").ToString();

由于replace返回字符串,您可以将它们链接到

rawStream = rawStream.Replace("<br>","").Replace("<br/>","").Replace("<br />","");

你不能把它放在ToString()调用之后吗?

richTextBox1.Text = myBuilder.ToString().Replace("string1", "string2");

如注释中所述,您也可以在字符串生成器对象本身上调用它。

richTextBox1.Text = myBuilder.Replace("string1", "string2").ToString();

试试这个。

richTextBox1.Text = myBuilder.Replace("<br>", String.Empty).Replace("</br>", String.Empty).ToString();

var rawStream = sr.ReadToEnd().Replace("<br>", String.Empty).Replace("</br>", String.Empty);