另一個字串/子字串主題:
我正在嘗試撰寫一個函式,該函式在從非常長的文本檔案生成的字串中查找子字串“id”和“imagePath”。兩個子字串之間的字符應該寫在富文本框中。我看不出我做錯了什么,但回圈永遠不會結束,并且總是只列印所述字符的第一次出現,導致文本框中顯示一百萬行相同的行。我的檔案中兩個子字串至少出現 10 次,我的代碼如下:
private void textToFind ( string file, string catalogType)
{
richTextBox1.Clear();
catalogType.ToUpper();
string contentOfFile = File.ReadAllText(file);
contentOfFile.TrimEnd();
int startPosition, endPosition;
while (contentOfFile.Length > 20)
{
startPosition = contentOfFile.IndexOf("id");
endPosition = contentOfFile.IndexOf("imagePath");
if (startPosition >= 0 && endPosition > startPosition)
{
startPosition = startPosition 4;
endPosition = endPosition -3;
string dataToExtract = contentOfFile.Substring(startPosition, endPosition);
richTextBox1.AppendText(dataToExtract "\r\n");
contentOfFile.Remove(startPosition-4, endPosition 12);
}
else
{
richTextBox1.AppendText("fail " catalogType "\r\n");
contentOfFile.Remove(contentOfFile.Length/2);
}
}
return;
}
誰能分享為什么這不能按預期作業?我認為 contentOfFile.Remove 不起作用并且主字串沒有被修剪,但我不明白為什么。
非常感謝!
uj5u.com熱心網友回復:
contentOfFile.Remove實際上并沒有修改它的值,contentOfFile只是回傳一個洗掉了指定部分的字串。
所以你需要做contentOfFile = contentOfFile.Remove(startPosition - 4, endPostion 12);
與回圈TrimEnd前的呼叫相同。while
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/516487.html
標籤:C#细绳子串
