java - 如何用文字制作一个空心正方形?
问题描述
所以我试图创建一个程序,我要求用户输入一个字符串,然后输出一个带有字符串的空心方块。因此,如果用户输入“四”,示例将如下所示:
输出:
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 行打印在顶部并且也没有对齐以形成正方形。任何帮助将不胜感激谢谢!
解决方案
您可以通过注意以下事项来简化您的任务:
- 第一行 = 单词 + 单词的第一个字母
- 秒到长度行 = word[length-row],空白 * 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
推荐阅读
- c# - 如何避免 Newtonsoft JObject.Parse 类型转换
- android - 获取 Google 签名的用户信息
- django - 在不使用 url 方法的情况下在迭代期间显示图像 url
- reactjs - React jest 测试抛出“对象作为 React 子项无效(找到:带有键 {type,props} 的对象)”
- ssh - 流浪汉禁用密码身份验证不起作用
- android - 如何调试 Firebase Android Studio 应用程序,该应用程序因权限被拒绝而上传失败?
- html - 在搜索栏 HTML 中显示图像
- ios - 赋值相关对象核心数据
- google-apps-script - onSelectionChange Google 应用脚本示例
- c - 在调用者堆栈上分配的内联函数、宏和其他解决方案