Caused by: java.lang.ArrayIndexOutOfBoundsException: 15 в простом случае

212
29 марта 2019, 17:20
package sample;
import javafx.application.Application;
import javafx.stage.Stage;
public class Main extends Application {
  String string  = "ffeeddccbbaa99881122334455667700";
  public final char[] a = string.toCharArray();
  public static final char pi[] = {
        // 0    1    2    3    4    5    6    7
        252, 238, 221, 17 , 207, 110, 49 , 22 ,//0
        251, 196, 250, 218, 35 , 197, 4  , 77 ,//1
        233, 119, 240, 219, 147, 46 , 153, 186,//2
        23 , 54 , 241, 187, 20 , 205, 95 , 193,//3
        249, 24 , 101, 90 , 226, 92 , 239, 33 ,//4
        129, 28 , 60 , 66 , 139, 1  , 142, 79 ,//5
        5  , 132, 2  , 174, 227, 106, 143, 160,//6
        6  , 11 , 237, 152, 127, 212, 211, 31 ,//7
        235, 52 , 44 , 81 , 234, 200, 72 , 171,//8
        242, 42 , 104, 162, 253, 58 , 206, 204,//9
        181, 112, 14 , 86 , 8  , 12 , 118, 18 ,//10
        191, 114, 19 , 71 , 156, 183, 93 , 135,//11
        21 , 161, 150, 41 , 16 , 123, 154, 199,//12
        243, 145, 120, 111, 157, 158, 178, 177,//13
        50 , 117, 25 , 61 , 255, 53 , 138, 126,//14
        109, 84 , 198, 128, 195, 189, 13 , 87 ,//15
        223, 245, 36 , 169, 62 , 168, 67 , 201,//16
        215, 121, 214, 246, 124, 34 , 185, 3  ,//17
        224, 15 , 236, 222, 122, 148, 176, 188,//18
        220, 232, 40 , 80 , 78 , 51 , 10 , 74 ,//19
        167, 151, 96 , 115, 30 , 0  , 98 , 68 ,//20
        26 , 184, 56 , 130, 100, 159, 38 , 65 ,//21
        173, 69 , 70 , 146, 39 , 94 , 85 , 47 ,//22
        140, 163, 165, 125, 105, 213, 149, 59 ,//23
        7  , 88 , 179, 64 , 134, 172, 29 , 247,//24
        48 , 55 , 107, 228, 136, 217, 231, 137,//25
        225, 27 , 131, 73 , 76 , 63 , 248, 254,//26
        141, 83 , 170, 144, 202, 216, 133, 97 ,//27
        32 , 113, 103, 164, 45 , 43 , 9  , 91 ,//28
        203, 155, 37 , 208, 190, 229, 108, 82 ,//29
        89 , 166, 116, 210, 230, 244, 180, 192,//30
        209, 102, 175, 194, 57 , 75 , 99 , 182};//31
   @Override
   public void start(Stage primaryStage) throws Exception {
       char[] arg = new char[15];
       S(arg);
       for (int i = 0; i < arg.length; i++) {
          System.out.print(arg[i]);
       }
   }
   public void S (char arg[]){
      for (int i = 15; i >= 0; i--) {
          arg[i] = pi[i];
      }
   }
}

В чем ошибка-то? Он возмущается на строчки

S(arg);

и

arg[i] = pi[i];

Но я просто хз че не так.

Answer 1

У вас идет выход за пределы массива из-за этого цикла. В вашем конкретном массиве находится 15 элементов, но т.к первый элемент имеет индекс [0], то последний будет иметь индекс [14].

      for (int i = 14; i >= 0; i--) {
          arg[i] = pi[i];
      }
READ ALSO
LinkedHashSet не удаляет повторяющиеся элементы

LinkedHashSet не удаляет повторяющиеся элементы

Проблема в следующем: необходимо удалить повторяющиеся элементы ArrayList'аДля этого использую следующий код:

145
Слушатель закрытия Activity

Слушатель закрытия Activity

У меня есть класс, который создаёт Activity в некоторых ситуациях, но он не наследуется от ActivityКак мне сделать так, что бы при закрытии Activity в классе...

172
Чтение и Запись Object Array List в файл

Чтение и Запись Object Array List в файл

Как реализовать запись объектного Array List в файл: txt или xmlПожалуйста, разъясните это на конкретных примерах

188
Как избавиться от перезаписи файла?

Как избавиться от перезаписи файла?

Есть метод writeToFile, который записывает нужные данные в файлtxt, проблема в том что текст каждый раз перезаписывается, а мне нужно чтобы добавлялся

183