如何用Java循环实现字母空心正方形(含反向单词)?
修改方案及原理
修改后的代码
public class Main { public static void main(String[] args) { String word = "SQUARE"; int size = word.length(); String reversedWord = new StringBuilder(word).reverse().toString(); for (int i = 0; i < size; i++) { if (i == 0) { // 打印顶部原单词 System.out.println(word); } else if (i == size - 1) { // 打印底部反转单词 System.out.println(reversedWord); } else { // 中间行:左侧字符 + 填充空格 + 右侧字符 char sideChar = word.charAt(i); int spaceNum = size - 2; System.out.print(sideChar); // 填充中间空格 for (int j = 0; j < spaceNum; j++) { System.out.print(" "); } System.out.println(sideChar); } } } }
核心原理说明
- 动态适配长度:用目标单词
"SQUARE"的长度替代硬编码的size=6,代码可以适配任意长度的单词,无需手动调整数值。 - 快速反转单词:借助
StringBuilder的reverse()方法一键生成原单词的反转字符串,这是Java中高效实现字符串反转的常用方式。 - 分场景处理每行:
- 第一行直接输出原单词,作为正方形的顶部边框;
- 最后一行输出反转后的单词,作为正方形的底部边框;
- 中间行固定逻辑:取原单词对应位置的字符作为左右侧边,中间填充
size-2个空格(总长度减去左右两个字符的位置),实现空心效果。
内容的提问来源于stack exchange,提问作者Lonely-Seaweed
相关产品推荐
相关产品推荐

