import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int row=0,column=0;
Scanner scanner = new Scanner(System.in);
int input= scanner.nextInt();
String s = scanner.nextLine();
String s1 = new String();
s1 =s.substring(1,2);
column=input;
row = (int) Math.round((double)column/2);
for (int i = 0; i < row; i++) {
if (i==0 || i == row-1) {
for (int j = 0; j < column; j++) {
System.out.print(s1);
}
System.out.println();
} else {
for (int j = 0; j < column; j++) {
if (j==0 || j==column-1) {
System.out.print(s1);
} else {
System.out.print(" ");
}
}
System.out.println();
}
}
}
}
第一个坑:
int input= scanner.nextInt();
String s = scanner.nextLine();
在控制台读取到第一个数字后,缓存区内留有一个空格,这个空格会被第二个scanner.nextLine()拿走。比如我输入10 a,那么input的值是10没错,但是s的值是" a",a的前面会有一个空格。
用substring可以处理,注意,substring返回的是一个新的字符串,所以要new一个新的String来接收
第二个坑:
row = (int) Math.round((double)column/2);
这里要注意往Math.round里面传double类型才能完成四舍五入的功能。