我一直试图弄清楚这个问题,任何帮助都会受到赞赏。我应该创建一个星号标题,它应该是这样的方法:
我完全难倒,我能够创建两个长行的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("");
打印出来:
任何帮助都会很棒。
编辑代码:
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("");
}
}
我得到了这个:
答案 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
message
需要截断为54个字符N
个字符,其中N <= 54
padLeft = (54-N)/2
padRight = 54 - N - padLeft
"***" + paddedMessage + "***"
有关如何在Java中填充String
的信息,请参阅this Q&A。