我正在研究一个项目,该项目从多个x中抽取X,并且用户给出对角线中x的数量。例如,如果用户给出的数字是4,它将如下所示:
X X
XX
XX
X X
我用一个打印对角线方法编写了一个程序,当我绘制第二个对角线时会出现问题,因为它在控制台中绘制了第一个对角线下面的第二个对角线。它看起来像这样:
X
X
X
X
X
X
X
X
我想知道是否可以将控制台线设置回到开头,以便我可以从顶部绘制另一个对角线。我研究过系统方法,但是我找不到任何东西。任何建议表示赞赏。
由于
答案 0 :(得分:4)
最好将所有输出打印到2D数组中,并在程序结束时将其全部打印出来。我将比操纵控制台光标位置容易得多。
当然可以设置光标位置。我认为您最好查找一些ascii字符,例如' \ b' (退格),用于直接操作光标位置。但是,我认为基于阵列的解决方案将更容易,并且可移植性得到保证。
答案 1 :(得分:0)
这是一个操作字符串的解决方案,无需在控制台上移动光标。
Print_X(4);
输出:
X X
XX
XX
X X
功能:
public static void Print_X (int num) {
String str;
for(int i=0;i<num;i++) {
str="";
for(int n=0;n<num;n++) str += " ";
str=str.substring(0,i)+'X'+str.substring(i+1);
str=str.substring(0,(num-1)-i)+'X'+str.substring(num-i);
System.out.println(str);
}
}
或者这个较短的函数指向控制台输出:
public static void Print_X (int num) {
int j,i,dz=num-1;
for(i=0;i<num;i++,dz-=2) {
for(j=0;j<num;j++)
System.out.print((j==i || j==i+dz)?"X":" ");
System.out.println();
}
}