0

私のプログラムは、この特定の入力に対してのみ文字列インデックス範囲外エラーを生成するようです。同じコードが他の入力に対しても機能しています。出力スクリーンショットとコードを以下に追加します。私は周りを検索しました-このエラーがシングル入力に対してのみ発生するという事実は、解決を困難にします.

               int ind,len,vallen,amount,credits = 0;
               String credit; 
               String value,item;
               float oneamount;
              // System.out.println("Credit Assignment");
               ind=input.indexOf("is");
               credit = input.substring(0, ind-1);
           //       System.out.println(credit);
                 //Seperate the Quantity and Item Name from the String
                  len = credit.length();
                  vallen= credit.lastIndexOf(" ");
                  value= credit.substring(0,vallen);          //**Line 59**
                  item = credit.substring(vallen,len).trim();
                  System.out.println(value);

ここに画像の説明を入力

4

3 に答える 3

1

クラッシュpish pish Gold is 40 Credits

「pish」に「is」が含まれているため、検索でインデックス 1 が返されると思います。右 ?

右。indは 1 で、creditは空文字列で、スペースが見つからないため、vallen-1 となり、次の行で例外が発生します。

于 2014-08-14T06:41:30.420 に答える
0

問題は

ind=input.indexOf("is");

Pish には文字列「is」が含まれていたため、これは 1 を返しました。だから今私は使った

ind=input.lastIndexOf("is");

そして、コードは正常に機能しています。回答ありがとうございます。初心者です。将来的には、コードをより適切にフォーマットし、スクリーンショットの代わりにスタック トレースを含めます。

于 2014-08-14T06:49:24.900 に答える