Я немного застрял в арифметике для этой программы. У меня есть строка theString
, длина которой x*y*z
. x
, y
и z
- размеры массива char [] [] [] (позволяет называть его cArr
).Индексирующая строка для вставки в char [] [] [] array
Я хочу вставить символы theString
в cArr
на основе определенного индекса. Вот пример массива 5x4x3.
String theString = someMethod(); //returns a string of length 60
char[][][] cArr = new char[5][4][3];
for (int z = 0; z < 3; z++) {
for (int y = 0; y < 4; y++) {
for (int x = 0; x < 5; x++) {
cArr[x][y][z] = theString.charAt(/*~~~*/);
}
}
}
я могу выяснить арифметические для вставки символов в полукокс [5] [4] массив из строки длины 20:
for (int y = 0; y < 4; y++) {
for (int x = 0; x < 5; x++) {
cArr[x][y] = theString.charAt((5*y)+x);
}
}
Что арифметическое я должен использовать в методе charAt()
для трехмерного массива символов?
Моя лучшая попытка была:
char[][][] cArr = new char[5][4][3];
for (int z = 0; z < 3; z++) {
for (int y = 0; y < 4; y++) {
for (int x = 0; x < 5; x++) {
cArr[x][y][z] = theString.charAt(((3^2)*z)+(4*y)+x);
}
}
}
Но это делает все г-указательные слои cArr
же.
Используя [эту терминологию] (http://i.ytimg.com/vi/mIJXeNWIE1E/hqdefault.jpg): количество полных панелей раз кубов панель + количество полных столбцов (в частичной панели) раз кубов в столбце + количество кубов в частичном столбце. –