Java 如何清除控制台中的一行
Java how to clear a line in the console
所以我只是在做一个随机程序,它创建一个充满字符的二维数组并将它们打印出来。我想要做的是打印出二维数组的行和列,并让用户输入他们想要将数组中的索引设置为什么字符。但我希望程序看起来干净,所以我没有 20 条看起来都相似的不同行。例如:
Row: 0 Col: 0 @
然后我按回车键,它会用这一行替换那一行
Row: 0 Col: 1 *
现在我的代码如下所示:
public static void drawArt(String[][] art) {
for (int row = 0; row < art.length; row++) {
for (int col = 0; col < art[row].length; col++) {
System.out.print("Row: " + (row + 1) + " Col: " + (col+1) + " ");
art[row][col] = s.nextLine();
System.out.print("\r\r");
}
}
}
我的理由是它会打印行和列,在接受用户输入后它会换行,所以我打印了两个“carriage returns”,一个用于输入后的新行, 和一个替换行和列。
我看到了很多不同的答案,所以我只想说我正在使用 Windows 10 和 Visual Studio 代码(但我已经从 windows命令)。那么有没有人有解决方案可以让我只替换那一行输出?
伙计们,你们的工作没有白费
这应该适用于 windows 10 和 vs 代码:
public static void clearScreen() {
System.out.print("3[H3[2J");
System.out.flush();
}
试试这个。
Scanner s = new Scanner(System.in);
String[][] art = new String[2][2];
for (int row = 0; row < art.length; row++) {
for (int col = 0; col < art[row].length; col++) {
System.out.print("Row: " + (row + 1) + " Col: " + (col+1) + " ");
art[row][col] = s.nextLine();
System.out.print("3[1F[K");
System.out.flush();
}
}
System.out.println(Arrays.deepToString(art));
所以我只是在做一个随机程序,它创建一个充满字符的二维数组并将它们打印出来。我想要做的是打印出二维数组的行和列,并让用户输入他们想要将数组中的索引设置为什么字符。但我希望程序看起来干净,所以我没有 20 条看起来都相似的不同行。例如:
Row: 0 Col: 0 @
然后我按回车键,它会用这一行替换那一行
Row: 0 Col: 1 *
现在我的代码如下所示:
public static void drawArt(String[][] art) {
for (int row = 0; row < art.length; row++) {
for (int col = 0; col < art[row].length; col++) {
System.out.print("Row: " + (row + 1) + " Col: " + (col+1) + " ");
art[row][col] = s.nextLine();
System.out.print("\r\r");
}
}
}
我的理由是它会打印行和列,在接受用户输入后它会换行,所以我打印了两个“carriage returns”,一个用于输入后的新行, 和一个替换行和列。
我看到了很多不同的答案,所以我只想说我正在使用 Windows 10 和 Visual Studio 代码(但我已经从 windows命令)。那么有没有人有解决方案可以让我只替换那一行输出?
伙计们,你们的工作没有白费
这应该适用于 windows 10 和 vs 代码:
public static void clearScreen() {
System.out.print("3[H3[2J");
System.out.flush();
}
试试这个。
Scanner s = new Scanner(System.in);
String[][] art = new String[2][2];
for (int row = 0; row < art.length; row++) {
for (int col = 0; col < art[row].length; col++) {
System.out.print("Row: " + (row + 1) + " Col: " + (col+1) + " ");
art[row][col] = s.nextLine();
System.out.print("3[1F[K");
System.out.flush();
}
}
System.out.println(Arrays.deepToString(art));