Хорошо, так вот решение.Чтобы получить шаблоны такого типа, сначала нарисуйте их на бумаге, а затем просто напишите столбцы и строки и найдите шаблон.
Единственный способ узнать это - на практике.
Конструкторпохож на метод, но не имеет возврата и использует имя класса.Конструктор всегда будет вызываться при создании нового объекта этого класса.
Пример:
Pattern p = new Pattern(3);
Оставьте конструктор для вещей, которые вам нужно будет сделатькогда вы создаете объект этого класса.В вашем случае определите размер вашего паттерна.
Пример:
public Pattern(int fS) { //fS = fieldSize
if (fS < 5)
fS = 5;
field = new char[fS][fS];
}
Затем у вас есть методы. После создания объекта вы можете использовать все методы.из его экземпляра.В вашем случае у вас будет метод с именем "fillArray".
Решение:
public void fillArray() {
int fS = field.length;
char c = ' ';
int len = fS - 1;
for (int row = 0; row < fS; row++)
for (int col = 0; col < fS; col++) {
if (row == col || row + col == len) c = '*';// This will make the asterisc cross
if (row < col && row < len - col) c = '1'; //This will do the 1 part
if (row < col && row > len - col) c = '2'; //This will do the 2 part
if (row > col && row > len - col) c = '3';//This will do the 3 part
if (row > col && row < len - col) c = '4';//This will do the 4 part
field[row][col] = c;
}
}
Помните: В этом случаеваш массив не будет заполнен до тех пор, пока вы не вызовете метод fillArray ()
Пример:
Pattern p = new Pattern(7);
p.fillArray();
Чтобы напечатать ваш шаблонЯ рекомендую вам использовать метод toString ().Вам нужно переопределить его.
Как:
@Override //Important
public String toString() {
StringBuilder s = new StringBuilder();
for (char[] row : field) {
for (char col : row)
s.append("\t").append(col);
s.append("\n");
}
return s.toString();
}
Используйте тег " @ Override ", чтобы увидеть, сделали ли вы какие-либоопечатка написания метода toString.Теперь, чтобы напечатать ваш шаблон, используйте:
Pattern p = new Pattern(7);
p.fillArray();
System.out.println(p); //This line
PD: Извините, если я допустил грамматическую ошибку, мой родной язык не английский.Надеюсь, это поможет.