import java.util.Arrays;
/*
* print a Pyramid constitute by *
*/
public class Pyramid {
/*
* entry of the program
*/
public static void main(String[] args){
printPyramid(21,'*');
}
/*
* print a Pyramid
*
* @param bottom_width, the width of the bottom of Pyramid, should be odd
*
* @param ch, the character that constitute Pyramid
*/
private static void printPyramid(int bottom_width, char ch){
if(bottom_width < 1 || bottom_width % 2 == 0){
throw new IllegalArgumentException();
}
int height = bottom_width /2 +1; // height of Pyramid
for(int i=0; i<height; i++){
int width = i*2+1; //width of current level
System.out.println(getLevel(bottom_width,width,ch));
}
}
/*
* print one line of Pyramid
*
* @param bottom_width, the width of Pyramid
*
* @param width, the width of current level
*
* @param ch, character
*
* @return, one line of Pyramid
*/
private static String getLevel(int bottom_width, int width, char ch){
int space_width = (bottom_width - width)/2; //the width of space in current line
return expand(' ', space_width) + expand(ch,width);
}
/*
* generate a String that contain several characters
*
* @param c, the characters that forms the String
*
* @param width, the length of the String
*
* @return, the String generates
*/
private static String expand(char c, int width){
char[] chars = new char[width];
Arrays.fill(chars, c);
return new String(chars);
}
}
Summary
1.类的结构
public static void main, main里调用了函数, public static void main(String[] args)。。。
private 其它function的函数,这些函数被main调用
2.判断条件,抛出异常
throw new IllegalArgumentException();
3.用字符串生成string
char[] chars = new char[width];
Arrays.fill(chars, c);