Java - 使用星号创建标头

时间:2017-10-30 20:23:27

标签: java methods

我一直试图弄清楚这个问题,任何帮助都会受到赞赏。我应该创建一个星号标题,它应该是这样的方法:

enter image description here

我完全难倒,我能够创建两个长行的60个星号和最左边的3个星号,但无法获得最后3个或者有任何线索如何获取要打印的信息。

这就是我必须打印的基本线:

for (int x = 0; x <= 60; x++){
    System.out.print("*");
}
System.out.println("\n***");     
for (int x = 0; x <= 60; x++){
    System.out.print("*");
}
System.out.println("");

打印出来:

enter image description here

任何帮助都会很棒。

编辑代码:

public static void main(String[] args)
{

    String msg = "";
    Scanner in = new Scanner(System.in);
    int whiteSpace;


    System.out.println("Enter your message: ");
    msg = in.nextLine();

     if(msg.length() < 54)
    {

        for (int x = 0; x <= 60; x++)
        {
            System.out.print("*");
        }
        System.out.println("\n***");


         whiteSpace = (54 - (msg.length())/2);
         for (int x = 0; x<=whiteSpace; x++)
         {
         System.out.print(" ");
         }

         System.out.print(msg);

         for (int x = 0; x<=whiteSpace; x++)
         {
         System.out.print(" ");
         }

       System.out.print("\n***");

       for (int x = 0; x <= 60; x++)
       {
           System.out.print("*");
       }
       System.out.println("");

}

}

我得到了这个:

enter image description here

2 个答案:

答案 0 :(得分:1)

你错过了整个字符串和拖尾3 * s。

两组&#39; ***&#39;之间有54个字符。所以要使你需要的字符串居中(54 - (string.length()))/ 2并在开始时和你的字符串中添加这么多的空白区域,然后再完成其余的3 * s(你还应该检查一下)字符串最多54个字符。)

for (int x = 0; x <= 60; x++){
    System.out.print("*");
}
System.out.println("\n***");


//your code is missing this
int length=string.length()
int whiteSpace=(54 - (string.length()))/2)
for (int x = 0; x<=whiteSpace){
 System.out.print(" ");
}
System.out.print(string);
for (int x = 0; x<=whiteSpace){
 System.out.print(" ");
}


System.out.print("\n***");
//up to here


for (int x = 0; x <= 60; x++){
    System.out.print("*");
}
System.out.println("");

答案 1 :(得分:1)

按照这种方法完成任务:

  • 标识代码中打印中间三个***
  • 的行
  • 您需要打印message,然后打印另外三个***\n
  • 中间一行的字符总数为60,因此中间的文字长度必须为54个字符
  • 因此,message需要截断为54个字符
  • 假设消息长N个字符,其中N <= 54
  • 左边的填充是padLeft = (54-N)/2
  • 右边的填充是padRight = 54 - N - padLeft
  • 之后,消息需要在两边填充,直到它正好是54个字符
  • 收到填充消息后,请打印"***" + paddedMessage + "***"

有关如何在Java中填充String的信息,请参阅this Q&A