Java 使用System.out.println()创建边框
在不影响边框的情况下,是否仍可以创建此类排列?我在这里真的被难住了,我的Java知识几乎局限于你在这里看到的东西,如果这有帮助的话Java 使用System.out.println()创建边框,java,Java,在不影响边框的情况下,是否仍可以创建此类排列?我在这里真的被难住了,我的Java知识几乎局限于你在这里看到的东西,如果这有帮助的话 System.out.println("###################################################"); System.out.println("# **** WEST END THEATRE BOOKING SYSTEM **** #"); System.out.println("#
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("###################################################");
因为您知道线的长度,并且所有线的长度都相同,所以可以这样做: 假设
n
是行的长度。由于sh3
将从15位开始,因此您可以计算sh3
之后需要多少空格
System.out.println("# Show: "+sh3+calcSpaces()+"#");
其中calcSpaces
可以轻松实现,因为您知道sh3
的长度
private String calcSpaces(String sh3) {
String res = "";
for(int i = 0; i < n - sh3.length(); i++){
res += " "; //You might want to use StringBuilder instead..
} //it's a good practice, although performance is not
} //significant here
私有字符串calcSpaces(字符串sh3){
字符串res=“”;
对于(int i=0;i
我还建议您阅读。您可以使用
sh3.length()
然后,您可以添加空间以适合您的边框
int spacesNum = 35 - sh3.length();
String spaces = "";
for(int i = spacesNum; i > 0; i++){
spaces += " ";
}
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+spaces+"#");
System.out.println("# Theatre: Her Majesty's #");
System.out.println("# Price: 65 #");
System.out.println("###################################################");
是的,这是一个棘手的方法:
String sh3 = "StackOverflow";
String sh4 = "";
for(int i=0;i<35-sh3.length();i++){
sh4 += " ";
}
sh4 += "#";
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 + sh4 );
System.out.println("# Theatre: Her Majesty's #");
System.out.println("# Price: 65 #");
System.out.println("###################################################");
String sh3=“StackOverflow”;
字符串sh4=“”;
对于(int i=0;i而言,最快的方法是:
System.out.print("# Show: " + sh3);
for (int i = 0; i < 34-sh3.length(); i++) {
System.out.print(" ");
}
System.out.println(" #");
System.out.print(“#Show:+sh3”);
对于(int i=0;i<34-sh3.length();i++){
系统输出打印(“”);
}
System.out.println(“#”);
就个人而言,我会使用或PrintStream
的方法
您可以像这样使用printf()
:
System.out.printf("# Show: %-35#\n", sh3);
打印第一个字符串时,其中的%-35
被替换为sh3
加上一些空格。%
开始转义序列,-
使sh3
位于分配的空格的左侧,35
为sh3
分配35个字符的空格。这35个字符中的任何一个sh3
未填充的字符将被空格填充
要阅读有关printf()
语法的更多信息,请转到
编辑:我忘了提到\n
。在字符串中,\n
是一个转义序列,用于创建新行。例如:
System.out.println("abc\n123");
与
System.out.println("abc");
System.out.println("123");
printf()
,与println()不同
,不会在打印的字符串的末尾创建新行。\n
手动创建新行,这是使程序按预期运行所必需的。我知道我没有为此提供代码,但我指的是思考过程,然后将实现留给您
共有4个属性,其中您知道行的总大小
,也知道字符串的长度
,并且您知道可以很容易地找到剩余的空间
你所需要的就是一个循环,它会计算出应该留下多少空间
这是一张很好的票证!顺便说一句,安排得很好:-D根据总长度在循环中打印空格-字符串变量的长度您需要固定sh3的字符数,并坚持使用边界。另外,请注意显示名称不应超过票证宽度的总长度。我没有测试calcSpaces
方法,但是概念很清楚。如果sh3.length()
超过了n
@NarendraPathai好注意。事实上,OP还有一些额外的事情要做。+1用于识别基本概念,而不仅仅是转储代码。@AaronBlenkush谢谢。是的,显示路径比只给出整个代码而不让OP思考任何事情要好。IMHO