gpt4 book ai didi

java - 如何用文字做一个空心的正方形?

转载 作者:行者123 更新时间:2023-12-01 23:47:21 25 4
gpt4 key购买 nike

所以我正在尝试创建一个程序,我要求用户输入一个字符串,然后我输出一个带有该字符串的空心方 block 。因此,如果用户输入“四”,则示例如下:

输出:

fourf
r o
u u
o r
fruof

到目前为止我的代码是这样的:

// JAVA code for hollow rectangle 
import java.io.*;
import java.awt.*;
import java.util.*;

class BasicAssign1 {


public static void main(String args[])
{
Scanner kb = new Scanner(System.in);
System.out.println("Enter line: ");
String word = kb.nextLine();
char abc[]={};
int a=0;
a=word.length();


for(int i=0; i<=word.length()-1; i++)
{
System.out.print(word.charAt(i));


}



int rows = word.length();
int columns = word.length();
int i;
int j;
for (i = 0; i <=rows; i++)
{

for (j = 0; j <=columns; j++)
{


if (i == 0 || i == rows || j == 0 || j == columns)
{

System.out.print(word.charAt(i));
}
if( i==0 && j==columns){
String word3 = "four";
StringBuilder sb = new StringBuilder(word3);
sb.reverse();
word3 = sb.toString();
System.out.println(word3);

}
else
System.out.print(" ");
}
System.out.println();
}



}
}

目前这个输出:

fourf f f f fruof

o o
u u
r r

现在我只正确完成了 1-2 行,但是应该是倒数的第 3 行打印在顶部并且也没有对齐以形成一个正方形。任何帮助将不胜感激谢谢!

最佳答案

您可以通过注意以下几点来简化您的任务:

  • 第一行=单词+单词首字母
  • second to length row = word[length-row], blank * length-1, word[row]
  • 最后一行=单词的第一个字母+向后的单词

并编写一个函数来实现它,例如

public static void square(String word) {
int len = word.length();
// first row: word + first letter of word
System.out.println(word + word.charAt(0));
// second to length row: word[length-row], blank * length-1, word[row]
// create a blanks string
String blanks = String.join("", Collections.nCopies(len - 1, " "));
for (int i = 1; i < len; i++) {
System.out.println(word.charAt(len-i) + blanks + word.charAt(i));
}
// last row: first letter of word + word backward
String reversed = new StringBuilder(word).reverse().toString();
System.out.println(word.charAt(0) + reversed);
}

你可以这样调用它,例如

square("four");
square("eleven");

这将给出以下输出:

fourf
r o
u u
o r
fruof

elevene
n l
e e
v v
e e
l n
enevele

关于java - 如何用文字做一个空心的正方形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64001400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com