有没有办法创建这样的排列,而String
变量sh3
不影响边界?我真的被难住了,我的Java知识几乎局限于您在这里看到的内容,如果有帮助的话?
System.out.println("###################################################");
System.out.println("# **** WEST END THEATRE BOOKING SYSTEM **** #");
System.out.println("# #");
System.out.println("# T I C K E T #");
System.out.println("# #");
System.out.println("# Show: "+sh3+" #");
System.out.println("# Theatre: Her Majesty's #");
System.out.println("# Price: 65 #");
System.out.println("###################################################");
7条答案
按热度按时间wribegjk1#
既然你知道直线的长度,而且所有的直线都有相同的长度,你可以这样做:
假设
n
是这一行的长度,由于sh3
将从第15位开始,您可以计算sh3
之后需要多少个空格。其中
calcSpaces
可以很容易地实现,因为您知道sh3
的长度。我还建议您阅读有关
Formatter
的内容。zsohkypk2#
我知道我没有为此提供代码,但我指出了思考的过程,然后将实现留给您。
有4个属性在发挥作用,其中你知道
total size of line
,你也知道length of the string
,你知道有多少空间是可以很容易地找到。您所需要的只是一个循环,它将计算应该留下多少空格。
xesrikrc3#
就我个人而言,我会使用
Formatter
或PrintStream
的printf()
方法。可以像这样使用
printf()
:当第一个字符串被打印出来的时候,其中的
%-35
被sh3
加上一些空格所代替,%
开始转义序列,-
使sh3
位于所分配空间的左边,35
为sh3
分配了35个字符的空间,这35个字符中没有被sh3
填充的任何一个都用空格填充。要阅读更多关于
printf()
语法的信息,请访问此处。编辑:我忘了提到
\n
。在String
中,\n
是一个转义序列,用于创建新行。例如:等于
printf()
与println()
不同,它不会在打印的String
末尾创建新行。\n
手动创建一个新行,这是使程序按预期运行所必需的。avwztpqn4#
是的,这是狡猾的方式:
vtwuwzda5#
最快的方法是:
kyvafyod6#
你可以使用
sh3.length()
得到sh3的长度,然后你可以添加空格来适应你的边框。wrrgggsh7#
这是我两秒钟的贡献。。有点矫枉过正,但它符合要求。。
签入:https://github.com/codegtd/tdd-log-panel