基本上我们的问题是: 我们不能代替这样的字符串:10003 * 但是我们可以更换一个像这样的字符串:10003C#与string.replace不起作用
我们想要替换看起来像这样一个字符串的一部分:10003 * 这是我们的代码:
string text = sr2.ReadToEnd();
sr2.Close();
while (loop != lstTxt.Items.Count)
{
string SelectedItem = lstTxt.SelectedItem.ToString() + "*";
text = text.Replace(SelectedItem, "tietze111");
if (lstTxt.SelectedIndex < lstTxt.Items.Count - 1)
lstTxt.SelectedIndex++;
loop++;
}
sw2.Write(text);
但它不工作。当我们忽略要替换的部分中的*时,它会起作用。但我们也必须替换*。你知道我们必须改变吗?
它的工作原理,当我们使用此:
string text = sr2.ReadToEnd();
sr2.Close();
while (loop != lstTxt.Items.Count)
{
string SelectedItem = lstTxt.SelectedItem.ToString(); // changed
text = text.Replace(SelectedItem, "tietze111");
if (lstTxt.SelectedIndex < lstTxt.Items.Count - 1)
lstTxt.SelectedIndex++;
loop++;
}
sw2.Write(text);
- 使用(VAR SR2 =新的StreamReader(Application.StartupPath + @ “\网站\德勒22 ET.htm”,Encoding.Default)) {
using (var sw2 = new StreamWriter(tempFile, true, Encoding.Default))
,因为该文件仍处于ASCII我们用这个。也许这就是问题所在。 我们如何解决这个问题?
System.String是一个Unicode字符序列,所以当你读取文件时,它被转换为Unicode。调试并设置一个断点,检查它的值是什么。也许将其解码为字节数组,然后查看数据或替换键是否不是您认为的...('*'是以ASCII编码定义的字符。) – erikH
你有没有得到这个工作? – bigamil