2016-10-26 13 views
0

これを省略しようとします。だから、私はこの長いコードを持って、System.IndexOutOfRangeExceptionエラーを取得し続けましたが、最初から開始しますが、1回のループで発生したので、ここで尋ねています。コード自体は非常に単純ですが、問題は間違いなくここにあります。終了すると、私は新しい文字列として、次のものを持っていることができます: -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文を説明するために、私は言葉「運動は」ときを探しています。

なぜこのエラーが発生するのですか?ありがとう。

EDIT:

演習::ベンチプレスここで私は読んでいましたサンプルテキストファイルです。魅力的な筋肉グループの胸、肩

エクササイズ:ショルダープレス。筋肉群の肩、上腕二頭筋を掛けた

エクササイズ:ケーブルの行。筋肉グループの背中、上腕二頭筋に戻る

+0

サンプル入力はありますか? –

+0

はい、ここに行きます: エクササイズ:ベンチプレス。魅力的な筋肉群の胸、肩。\ エクササイズ:ショルダープレス。エンゲージされた筋肉群の肩、上腕二頭筋\ エクササイズ:ケーブルの行。 \ n コメントに新しい行が含まれていないため、「\ n」と書いていました。 私の目標は、名前を保存することです(文字列 "ベンチプレス"のように)し、筋​​肉グループを別々の文字列として保存して列挙型として適用することですが、まずこの問題を解決する必要があります。 – Gytis39

+0

line.length - 1ではなくline.length - 1が必要ですが、問題が発生するとは思っていませんが、実際にはそれらの行にエラーがありますか?しかし、 'Exercise:'を空文字列に置き換えて、また、これはどの言語ですか?Console.WriteLine(line.Substring(i、line.Length - 1))が必要ですか? –

答えて

2

あなたが望むようにループを使用する必要はありません。文字列関数を使用してデータを抽出することができます。そのようなものを使用できます。

String exercise = "Exercise:hello"; 
var hello = exercise.Substring (exercise.IndexOf (":")); 
関連する問題