基本上我們的問題是: 我們不能代替這樣的字符串: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