提问人:Daniel Mases 提问时间:11/9/2023 最后编辑:Daniel Mases 更新时间:11/11/2023 访问量:126
如何在 java 上使用 “ | ” 和 “ _ ” 制作网格?
How can I make a grid using " | " and " _ " on java?
问:
我是 Java 的初学者,我的编程老师给了我们一个作业,我们需要用 “|” 和 “_” 制作一个由小方块组成的网格。分配
我知道这可能看起来很愚蠢,但这是我能做的最好的事情。我设法制作了列,但现在我不知道如何制作行。
package practice;
public class practice {
public static void main (String[] args) {
squares(4);
}
public static void squares(int number) {
for (int i=0; i<number; i++) {
System.out.print(" _");
}
System.out.println();
for (int i=0; i<number; i++) {
System.out.print("|_");
}
System.out.print("|");
System.out.println();
}
}
到目前为止,我已经学会了如何使用条件和循环,而这个作业是关于使用方法的。
答:
这应该做你想做的事。用于获取用户对行数和列数的输入。然后用一些 -loops 打印正方形。如果你关心效率,请改用,但我在这里没有使用它来保持简单。java.util.Scanner
for
StringBuilder
import java.util.Scanner;
public class Practice {
public static void main(String[] args) {
printGrid();
}
public static void printGrid() {
// get input
Scanner scanner = new Scanner(System.in);
System.out.println("Enter rows");
int rows = scanner.nextInt();
System.out.println("Enter columns");
int cols = scanner.nextInt();
scanner.close()
// print top line
if (rows > 0) {
System.out.print(" "); // padding
for (int i = 0; i < cols; i++) {
System.out.print("_ ");
}
System.out.println(); // new line
}
for (int i = 0; i < rows; i++) {
// print left line
System.out.print("|");
for (int j = 0; j < cols; j++) {
System.out.print("_|");
}
System.out.println(); // new line
}
}
}
评论
我放了一些剧透,所以首先你可以尝试自己解决它。
如果你仔细观察这个,你会看到多少行?
_ _
|_|_|
|_|_|
3 行,由于“标题”一行,总是多一行:
_ _
其中有多少遵循相同的模式?
除了第一个之外,所有
您可以使用以下代码实现此目的:
public static void main(String[] args) {
generateSquare(2, 2);
}
private static void generateSquare(int qtyRows, int qtyCols) {
System.out.println(" ".repeat(qtyCols));
for(int x = 0; x < qtyRows; x++) {
System.out.println(“|” + ”
|".repeat(qtyCols));
}
}
请注意,在 String 对象上使用了 repeat 方法,该方法允许您在不需要循环的情况下重复该字符串。
评论
下面是使用 StringBuilder 和 Formatter 类的示例。
void draw(int r, int c) {
StringBuilder s = new StringBuilder();
Formatter f = new Formatter(s);
f.format("%s%n", " _".repeat(c));
for (int i = 0, j; i < r; i++) {
for (j = 0; j < c; j++) f.format("|_");
f.format("|%n");
}
f.flush();
System.out.println(s);
}
输出
_ _
|_|_|
|_|_|
_ _ _ _ _ _ _ _ _ _ _ _
|_|_|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|_|_|
|_|_|_|_|_|_|_|_|_|_|_|_|
评论
_
=
repeat()