0
會盡量保持它簡短。所以我有這個長的代碼,不斷得到System.IndexOutOfRangeException錯誤,雖然我會從頭開始,它發生在一個單一的循環,所以我在這裏問。代碼本身非常簡單,問題肯定在這裏。System.IndexOutOfRangeException當遇到一個字符串,並且增加變量
using (var streamReader = new StreamReader(fileStream, Encoding.UTF8))
{
string line;
while ((line = streamReader.ReadLine()) != null)
{
int i = 0;
for(;;)
{
if(line[i] == 's' && line[i+1] == 'e' && line[i+2] == ':') break;
i++;
}
i = i + 2;
line.Substring(i, line.Length - i);
Console.WriteLine(line);
}
解釋if語句 - 我在尋找這個詞的時候「演習」結束,這樣我就可以有一個新的字符串下文。
任何想法,爲什麼我得到這個錯誤?謝謝。
編輯:下面是示例文本文件,我會讀:
練習:臥推。從事肌肉羣胸部,肩膀
練習:肩部按壓。從事肌肉羣肩膀,二頭肌
練習:電纜排。從事肌肉羣回來,二頭肌
你有樣本輸入嗎? –
是的,你在這裏: 練習:臥推。從事肌肉羣胸部,肩部\ n 練習:肩部按壓。從事肌肉羣肩膀,二頭肌\ n 練習:電纜排。參與肌肉羣回來,二頭肌\ n 不得不寫「\ n」,因爲評論沒有新行。 這個動作後我的目標是保存名字(就像有一個字符串「臥推」,然後將肌肉羣保存爲單獨的字符串,並將它們用作枚舉,但首先我需要解決這個問題。 – Gytis39
You想line.length - 1,而不是line.length - 我。但我不認爲這會導致你的問題。你確定它在這些行上的錯誤嗎?但是,我只是用一個空白字符串替換'練習:'並打印還有,這是什麼語言?你想要Console.WriteLine(line.Substring(i,line.Length - 1))嗎? –