テストすると、うまくビルドされます。しかし、それを実行すると、イントロとユーザー出力の質問のみが表示されます (これが本来の動作です) が、回答を入力するとエラーが表示されます:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 50
at statecapitals.StateCapitals.main(StateCapitals.java:141)
今、私はこれに慣れていないことを知っていますが、エラーだと思うのは、配列が対応しておらず、何が間違っていたのかわからないということです。どんな助けでも大歓迎です。ここに私が持っているものがあります:
String[] stateName = new String[50];
String[] capName = new String[50];
int i;
for(i=0; i < 50; i++)
{
stateName[0] = "Alabama";
stateName[1] = "Alaska";
.....
capName[0] = "Montgomery";
capName[1] = "Juneau";
.....
}
boolean found = false;
Scanner keyboard = new Scanner(System.in);
System.out.println("This program is designed...");
System.out.println("Please enter the name of a U.S. state (please enter capitalized):");
stateName[i] = keyboard.nextLine();
for(i=0; (!found) && (i < stateName.lenth); i++)
if(stateName[i].matches(capName[i]) )
System.out.print(The capital of " + stateName + " is " + capName);
found = true;
if(!found)
System.out.println("The name you entered was not on the list.");
*更新および編集: 最も問題があったコード行は次のとおりです。
stateName[i] = keyboard.nextLine();
みんなの助けに感謝します、私はいくつかの変更を加えました:
int i;
for(i=0; i < 49; i++)
{
stateName[i+1]
.....
capName[i+1]
...
}
さらに、一番下の for ループに中かっこを追加しました。実行すると、次の行で停止します。
if(capName[i].matches(stateName[i]) )
今回のエラーは次のとおりです。
Exception in thread "main" java.lang.NullPointerException
at statecapitals.StateCapitals.main(StateCapitals.java:146)
改めまして、皆様のご意見をお寄せいただきありがとうございます。