使文本保持在一个组中

时间:2011-10-09 22:22:06

标签: java

我有一个关于Java的相当简单的问题。我目前正在学习Java,其中一个功课问题令我难过。目标是用小人物创建一个三角形。我相信我有这个想法,但我无法让这个人的整个身影向右移动。

我到目前为止的代码是:

public class LittleGuy {
    public static final int NUMBER_OF_GUYS = 5; // determines the number of guys.
        public static void main(String[] args) {
            for (int line = 1; line <= NUMBER_OF_GUYS; line++){
                for (int j = 1; j <= (-5 * line + 25); j++){// uses the algorithm.
                    System.out.print(" ");
       }
        guy();

    }
}
public static void guy(){
    System.out.print("  o  ******\n /|\\ *\n / \\ *");
    System.out.println();
    }
}

基本上,身体和头部不应该分开。我无法将它们保持在一起。我假设这是一个相当简单的修复,我要么不知道,要么完全过度。任何信息或想法将不胜感激。再次感谢。

2 个答案:

答案 0 :(得分:0)

你只是在小家伙的第一行之前打印出空格,在guy()方法中,你仍然在第一行打印其余的人。

我建议使用printSpaces(int numSpaces)方法打印numSpaces个空格,然后更改包方法以在每行的开头打印空格数。

答案 1 :(得分:0)

public class LittleGuy {

public static final int NUMBER_OF_GUYS = 5; // determines the number of guys.
    public static void main(String[] args) {

        for (int line = 1; line <= NUMBER_OF_GUYS; line++){
            int counter=0;
            for (int j = 1; j <= (-5 * line + 25); j++){// uses the algorithm.
               System.out.print(" ");
               counter++;
   }
    guy(counter);

}
}
public static void guy(int count){

System.out.print("  o  ******");
System.out.print("\n");

for(int i=0;i<count;i++)
System.out.print(" ");    

System.out.print("/|\\ *");
System.out.print("\n");

for(int i=0;i<count;i++)
System.out.print(" ");

System.out.print("/ \\ *");

System.out.println();
}

}

问题是:在guy()方法中,您使用\n来打印该人。但它不会处理您打印的空白区域以实现您的算法(在for循环内)。

如何解决:在for循环中放置一个计数器来计算打印了多少个空格,并在guy()方法中使用该计数器来打印所需的空格。