0

これは、10 個の一意の文字列を格納するプログラムです。ユーザーが配列に既に存在する文字列を入力すると、エラーが発生します。私のコードは、入力した最初の文字列に対しては完全に機能していますが、その後例外がスローされ、その理由がわかりません。これを修正して機能させるにはどうすればよいですか?

PS私はセットを使いたくありません。配列でやりたい。

編集: エラー名: スレッド「メイン」の例外 java.lang.NullPointerException Java 結果: 1

ありがとう。

 public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        int stringNumber = 0;
        String[] stringArray = new String[10];

        for (int i = 0; i <= stringArray.length; i++) {

            boolean itemExists = false;

            out.println("\nEnter a string");
            String input = keyboard.next();

            if (i > 0) {
                for (int j = 0; j < stringArray.length; j++) {
                    if (stringArray[j].equalsIgnoreCase(input)) {
                        itemExists = true;
                        out.println("Item \"" + input + "\" already exists.");
                        break;
                    } else {
                        continue; // Unhandled exception error. If I don't have "continue" here, the program doesn't work properly after the first number.
                    }
                }
            }

            if (itemExists == false) {
                stringArray[stringNumber] = input;
                out.println("\"" + stringArray[stringNumber] + "\"" + " has been stored.");
            } else {
                out.println("Try again.");
            }

            PrintArray(stringArray);
            stringNumber++;

        }

    }

    public static void PrintArray(String[] stringArray) {

        for (int i = 0; i <= 9; i++) {
            if (stringArray[i] == null) {
                out.print(" ");
            } else {
                out.print("\nYour strings:");
                out.print(" " +stringArray[i] + " ");
            }
        }
    }
4

3 に答える 3