基于控制台打印金字塔:
import java.util.Arrays;
import java.util.Scanner;
public class Pyramid {
/**
* @param args
*/
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入要打印的层数:");
int number = input.nextInt();
print(number,'j');
}
/**
*
* @param floor 要打印金字塔的层数
* @param c 组成金字塔的字符
*/
private static void print(int floor,char c){
if(floor<1)
throw new IllegalArgumentException("层数不能少于1!");
for (int i = 1; i <=floor; i++) {
//当前层字符前要打印的空格数
int space_head = floor - i;
char [] sh = new char[space_head];
Arrays.fill(sh, ' ');
System.out.print(new String(sh));
//当前层要打印的字符数
int charNum = 2*i-1;
char [] chars = new char[charNum];
Arrays.fill(chars, c);
System.out.print(new String(chars));
//当前层字符后要打印的空格数
int space_back = floor - i;
char [] sb = new char[space_back];
Arrays.fill(sb, ' ');
System.out.print(new String(sb)+"\n");
}
}
}
知识点:
1.控制台手动输入,Scanner对象的应用。
2.char数组的创建及Arrays类方法fill的应用。
逻辑:
对金字塔结构进行分析,当前层要打印的空格数、字符数以及当前层打印完成后的换行。
import java.util.Arrays;
import java.util.Scanner;
public class Pyramid {
/**
* @param args
*/
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入要打印的层数:");
int number = input.nextInt();
print(number,'j');
}
/**
*
* @param floor 要打印金字塔的层数
* @param c 组成金字塔的字符
*/
private static void print(int floor,char c){
if(floor<1)
throw new IllegalArgumentException("层数不能少于1!");
for (int i = 1; i <=floor; i++) {
//当前层字符前要打印的空格数
int space_head = floor - i;
char [] sh = new char[space_head];
Arrays.fill(sh, ' ');
System.out.print(new String(sh));
//当前层要打印的字符数
int charNum = 2*i-1;
char [] chars = new char[charNum];
Arrays.fill(chars, c);
System.out.print(new String(chars));
//当前层字符后要打印的空格数
int space_back = floor - i;
char [] sb = new char[space_back];
Arrays.fill(sb, ' ');
System.out.print(new String(sb)+"\n");
}
}
}
知识点:
1.控制台手动输入,Scanner对象的应用。
2.char数组的创建及Arrays类方法fill的应用。
逻辑:
对金字塔结构进行分析,当前层要打印的空格数、字符数以及当前层打印完成后的换行。