Java配列のout of boundsエラーです。スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 15
2022-02-14 23:50:09
今日、Javaの学習中に、配列を与えて、その配列に含まれる数値の数を求める問題に遭遇しました。この問題に出会って最初に考えたのは、ArraysクラスのtoString()メソッドを使って配列をStringに変換し、添え字を処理して数字の個数を求めることでした。 Stringクラスのオブジェクトは、添え字を直接扱わないんだ。
そして、配列は各位置で0に初期化されるので、toCharArray()メソッドでStringクラスオブジェクトを文字の配列に変換し、その文字の配列を繰り返し処理して結果を得ています。
public static void main(String[] args){
int[] scores = {1, 2, 3, 4, 5};
String l = Arrays.toString(scores);
//char list[] = new char[100];
char[] list = l.toCharArray();
int number = 0;
for(int i = 0; list[i] ! = 0; i++)
{
if(list[i] == ' ')
{
number++;
}
}
System.out.println(number);
}
Hint: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 15
at kick.HelloWorld.main(HelloWorld.java:12)
Hint: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 15
at kick.HelloWorld.main(HelloWorld.java:12)
これは、配列リストの添え字が走査中に 15 (実際には 16) になったことを示す境界外エラーメッセージで、初期化時に要求されたのは 15 の位置だけだったことを示しています。
後のヒントに関連して、forループの終了判定が間違っていたことがわかり、この文字配列のメモリ要求範囲は正確なので、後ろに余分なスペースはなく、0に初期化された配列の位置はもうないのです。
関連
-
unsigned' の前に期待される一次式 Solution
-
スキャナは、入力を待たずにエラーを報告します java.util.NoSuchElementException: 行が見つかりません
-
ldap_bind: 無効な認証情報 (49)
-
tensorflow.contrib'という名前のモジュールはありません。
-
QT5のQTimerは間違えやすい、正しい使い方
-
OverflowError: Python 2.7 で C の long に変換するには Python の int が大きすぎる。
-
Pytorch が Python int が大きすぎて C の long に変換できないというエラーを報告する
-
init()でエラーが発生しました。ログはすでに使用中です エラー解決
-
ハウジング・エンド ボブ・オストヴィッチ
-
Eclipseオンラインインストールエラー インストールするアイテムの収集中にエラーが発生しました。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
C LanguageError:Idは1終了ステータスを返しました。
-
fatal: リモートが見つからなかった refs/heads/cm-13.0
-
postman request prompt このリソースにアクセスするには完全な認証が必要です。
-
jinja2.exceptions.TemplateNotFound: xxxx.html
-
Android Studio が GIT をコミットするとき、このリポジトリでは別の git プロセスが実行されているようです(例:エディタを開いている)。
-
ArrayAdapterの外観は、リソースIDがTextViewである必要がある問題について
-
Android開発におけるActivityからFragmentへのデータ受け渡しの2つの方法について。
-
ページを開いてメソッドを呼び出した後 $(function() {}); Uncaught ReferenceError: ブラウザコンソールで $ が定義されていません。
-
エラーが発生しました。ルールは1つのリソースソースしか持つことができません(提供されたリソースとテスト+インクルード+エクスクルード)。
-
パラメータの例外です。引数型[java.lang.Integer]の名前がありません。