gpt4 book ai didi

java - 在 Java 中为控制台格式化文本输出

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:39:42 31 4
gpt4 key购买 nike

我正在编写一个简单的日记控制台程序。无法真正弄清楚什么是分解用户文本输入的最简单方法。我在一个字符串中输入日记笔记,然后我希望能够将该字符串打印到控制台,但未格式化它当然只会在终端的一长行中显示该字符串,这使得阅读起来非常不友好。我将如何为每个 x 个字符左右显示一个新行的字符串?我能找到的关于文本格式的所有信息都是 System.out.printf() ,但它只打印了最少的字符数。

最佳答案

我建议使用一些外部库来做,比如 Apache commons:

http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/text/WordUtils.html

并使用

http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/text/WordUtils.html#wrap(java.lang.String , 整数)

static final int FIXED_WIDTH = 80;

String myLongString = "..."; // very long string
String myWrappedString = WordUtils.wrap(myLongString,FIXED_WIDTH);

这将按照空格 ' ' 将您的字符串包装成固定宽度

没有外部库

您必须实现它:

顺便说一句:我这里没有java的编译器可以测试,直接编译不通过不要生气

private final static int MAX_WIDTH = 80;

public String wrap(String longString) {
String[] splittedString = longString.split(" ");
String resultString = "";
String lineString = "";

for (int i = 0; i < splittedString.length; i++) {
if (lineString.isEmpty()) {
lineString += splittedString[i];
} else if (lineString.length() + splittedString[i].length() < MAX_WIDTH) {
lineString += splittedString[i];
} else {
resultString += lineString + "\n";
lineString = "";
}
}

if(!lineString.isEmpty()){
resultString += lineString + "\n";
}

return resultString;
}

关于java - 在 Java 中为控制台格式化文本输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19425508/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com