1. ホーム
  2. java

[解決済み】Java Error "Exception in thread "main" java.util.InputMismatchException" Array プログラムで発生。

2022-01-28 06:41:06

質問

最近、10個の地域とそのピンコードを受け取り、特定の地域を検索してそのピンコードをプリントアウトするJavaプログラムを作成しました。 以下はそのプログラムからのコードです。

import java.util.Scanner;
public class Sal {

    public static void main (String args []){ 
        Scanner s=new Scanner(System.in);
        System.out.println("Enter 10 areas and their pincodes");
        String area[]=new String [10];
        int pincode[]=new int [10];
        String search;
        int chk=0;
        int p=0;

        for (int i=0;i<=9;i++){
            area[i]=s.nextLine();
            pincode[i]=s.nextInt();
        }

        System.out.println("Enter Search"); 
        search=s.nextLine();

        for (int j=0;j<=9;j++){
            if(search==area[j]){
                chk=1;
                j=p;
                break;
            }
        }

        if(chk==1){
            System.out.println("Search Found "+"Pincode : "+pincode[p] );
        } else {
            System.out.println("Search not Found");
        }
    }
}

そして、2つのエリアを入力した後、このERRORが表示されます。

Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at Sal.main(Sal.java:14)

どなたか、私が何を間違えているのか、教えてください! :/。 どんな助けでも感謝します。

解決方法は?

まず、読みやすくするために、コードをインデントすることを忘れないようにしましょう。

コンセプト1.

for (int i=0;i<=9;i++){

area[i]=s.next();// Use this for String Input

pincode[i]=s.nextInt();

s.nextLine();//Use this for going to next line of input

}

コンセプト2.

if(search.compareTo(area[j])==0){ 

// compareToメソッドを使って文字列を比較する(等しい場合は0を返す

残りのコードとコンセプトは正しいです :)