Мой код создания надежного пароля String дает ошибку времени выполнения, как это исправить?

этот фрагмент кода о создании строкового пароля, который является строкой.

import java.util. *;

public class Solution {

static int minimumNumber(int n, String password){    
   int arr[]=new int[n];
    String A[]=new String[4];
   String numbers = "0123456789";
   String lower_case = "abcdefghijklmnopqrstuvwxyz";
   String upper_case = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
   String special_characters = "!@#$%^&*()-+";
    A[0]=numbers;
    A[1]=lower_case;
    A[2]=upper_case;
    A[3]=special_characters;
    for(int i=0;i<n;i++){
      for(int k=0;k<4;k++){
          for(int j=0;j<A[k].length();j++){
              if (password.charAt(i)==A[k].charAt(j)){
                  arr[i]=k;

                }
          }
     }
   }
    int ano[]=new int[4];
    ano[0]=0;
    ano[1]=1;
    ano[2]=2;
    ano[3]=3;
    for(int i=0;i<4;i++){
         int a=0;
        for(int j=0;j<n;j++){

            if (ano[i]==arr[j]){
                break;
            }
            else if (arr[i]!=ano[j]){
                a++;
            }
        }
        if (a==n){
            password=password+A[i];
        }
    }
    int n1=6-password.length();
    if (n1>=2){
        for(int i=0;i<n1;i++){
            password=password+A[0].charAt(i);
        }
    }
    int w=password.length()-n;
    return w;

}

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    int n = in.nextInt();
    String password = in.next();
    int answer = minimumNumber(n, password);
    System.out.println(answer);
    in.close();
}

}

01) выдает исключение ошибки времени выполнения в потоке "main" java.lang.ArrayIndexOutOfBoundsException: 3 в Solution.minimumNumber (Solution.java:42) в Solution.main (Solution.java:65)

См. Также: Как отлаживать небольшие программы.

Turing85 01.05.2018 18:26
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
37
0

Другие вопросы по теме