Чередование шаблонов в Java
Здравствуйте, пытаясь выяснить, как сделать следующий шаблон в Java
xoxox
oxoxo
xoxox
Я недавно учусь и пытаюсь понять это часами. Вот код, который у меня есть до сих пор. Это в основном связано с последней частью публичной статической строки String textBoxString(int row, int cols, char c1, char c2)
public class TextBoxTester {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s = TextBox.textBoxString(3);
System.out.println(s);
s = TextBox.textBoxString(4, '+');
System.out.println(s);
s = TextBox.textBoxString(3, 4);
System.out.println(s);
s = TextBox.textBoxString(3, 5, 'x', 'o');
System.out.println(s);
}
}
public class TextBox {
public static String textBoxString(int side) {
String s = "";
for (int i = 0; i < side; i++) {
for (int j = 0; j < side; j++)
s += "*";
s += "\n";
}
return s;
}
public static String textBoxString(int side, char bChar) {
String s = "";
for (int i = 0; i < side; i++) {
for (char j = 39; j < bChar; j++)
s += bChar;
s += "\n";
}
return s;
}
public static String textBoxString(int rows, int cols) {
String s = "";
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++)
s += "*";
s += "\n";
}
return s;
}
public static String textBoxString(int rows, int cols, char c1, char c2) {
char c = c1;
char d = c2;
String s = "";
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++)
s += c;
if (c == c1) {
c2++;
} else {
c1 = c;
}
s += "\n";
}
return s;
}
}
1 ответ
Я обновил эту функцию ниже:
public static String textBoxString(int rows, int cols, char c1, char c2) {
String s = "";
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
// this is used for alternating columns
if (j % 2 == 0) { // if j is even then append c1
s += c1;
} else {
s += c2; // // if j is odd then append c2
}
}
// this is used for alternating rows
char tmp = c1;
if (i % 2 == 0) { // switch the values of c1 and c2
c1 = c2;
c2 = tmp;
} else { // switch the values of c1 and c2
tmp = c2;
c2 = c1;
c1 = tmp;
}
s += "\n";
}
return s;
}
public static String textBoxString(int rows, int cols, char c1, char c2) {
String s = "";
for (int i = 0; i < rows; i++) {
if (i == 0 || i == rows - 1) {
for (int j = 0; j < cols; j++) {
// this is used for alternating columns
if (j % 2 == 0) { // if j is even then append c1
s += c1;
} else {
s += c2; // // if j is odd then append c2
}
}
} else {
// this is used for alternating rows
char tmp = c1;
if (i % 2 == 0) { // switch the values of c1 and c2
c1 = c2;
c2 = tmp;
} else { // switch the values of c1 and c2
tmp = c2;
c2 = c1;
c1 = tmp;
}
s += c1;
for (int j = 0; j < cols - 2; j++) {
s += " ";
}
s += c2;
}
s += "\n";
}
return s;
}
вывод: xoxox o x x o xoxox