作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何将输入字符串的每个单词设置为一个新行并将输出放在 ASCII 框中?
我有以下代码:
import java.util.Scanner;
public class labSix {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Enter a line of text: ");
String line = in.nextLine();
printBox(line);
}
// Returns the length of the longest token in the line.
private static int getMaxLength(String... strings) {
int len = Integer.MIN_VALUE;
for (String str : strings) {
len = Math.max(str.length(), len);
}
return len;
}
// Pad the strings with spaces.
private static String padString(String str, int len) {
StringBuilder sb = new StringBuilder(str);
return sb.append(fill(' ', len - str.length())).toString();
}
// Fill the string to the amount determined in padString.
private static String fill(char ch, int len) {
StringBuilder sb = new StringBuilder(len);
for (int i = 0; i < len; i++) {
sb.append(ch);
}
return sb.toString();
}
// Print the box
public static void printBox(String... strings) {
int maxBoxWidth = getMaxLength(strings);
String line = "+" + fill('-', maxBoxWidth + 2) + "+";
System.out.println(line);
for (String str : strings) {
System.out.printf("| %s |%n", padString(str, maxBoxWidth));
}
System.out.println(line);
}
}
如果我尝试拆分字符串并将“”替换为“\n”,那么只有一个“|”添加到第一行和最后一行。
关于如何实现这一点有什么建议吗?
最佳答案
将您的调用更改为 printBox
。您目前传递一个名为 line
的 String
,而不是通过在空格上拆分行来传递一组 String
(s)。喜欢,
printBox(line.split(" "));
有了这个改变,当我输入“Hello world Goodbye world”时,我得到了
+---------+
| Hello |
| world |
| Goodbye |
| world |
+---------+
关于java - 如何在新行上设置每个单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52694086/
我是一名优秀的程序员,十分优秀!