文采不行,不瞎扯了,直接附上代码
private static void printDiamond(int row) {
//菱形行数
row = row%2==1?row:row+1;
//分配行
char[][]arr = new char[row][];
for (int cols=-1, i = 0; i < arr.length; i++) {
cols = i <= arr.length/2 ? (cols+=2) : (cols-=2);
//分配列
arr[i] = new char[cols];
//星号填充
Arrays.fill(arr[i], '*');
//前导空格输出
String format = "%"+((arr.length- cols)/2 + 1) +"s";
System.out.printf(format, " ");
//星号输出
for(int j = 0; j<arr[i].length;j++) {
System.out.print(arr[i][j]);
} ;
//换行
System.out.println();
}
}