Попробуйте заменить соответствующие строки на:
myStringArray[0][x-1] = "a string";
myStringArray[0][y-1] = "another string";
. Ваш код неверен, потому что подмассивы имеют длину y
, а индексация начинается с нуля. Поэтому установите значение myStringArray[0][y]
или myStringArray[0][x]
не будет работать, потому что индексы x
и y
находятся за пределами границ.
String[][] myStringArray = new String [x][y];
- это правильный способ инициализации прямоугольного многомерного массива. Если вы хотите, чтобы он был зазубрен (каждый подматрица потенциально имеет разную длину), вы можете использовать код, похожий на этот ответ . Обратите внимание, однако, что утверждение Джона о том, что вы должны создать подмассивы вручную, неверно в том случае, если вы хотите идеально прямоугольный многомерный массив.