Java 中控制台的文本输出格式

2024-02-06

我正在编写一个简单的日记控制台程序。无法真正弄清楚分解用户文本输入的最简单方法是什么。我在字符串中接收日记笔记,然后我希望能够将该字符串打印到控制台,但未格式化的它当然只是在终端上以一长行显示该字符串,使其阅读起来非常不友好。我如何为每个 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

并使用

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

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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 中控制台的文本输出格式 的相关文章

随机推荐

  • Ext JS 4:使用 JavaScript 将 JSON 对象转换为另一个 JSON 对象

    使用 JavaScript 将 JSON A 转换为 JSON B 的最简单方法是什么 JSON A d type Web Controls Shared GeneralService DropdownKeyValuePair key 0
  • 多个嵌套表 - ServiceStack Ormlite

    我有一组嵌套表 例如 客户 gt 客户订单 gt 订单详细信息 我与服务堆栈和 ormlite 一起使用 我需要能够传入 customerid 然后返回一个 json 提要 其中客户订单嵌套在客户对象中 订单详细信息嵌套在每个客户订单对象中
  • swing 将数据从 mysql 数据库检索到文本字段

    我在 mysql 表中有列有 100 条记录 我想显示文本字段内表中的值 每 3 秒显示从 0 99 的记录 这是我的代码 Connection conn null Statement st null ResultSet rs null S
  • YouTube Analytics API 通道:响应没有 rows 参数

    当使用 API 检索聚合指标时channel的内容 报告返回单行数据 其中包含指定日期期间每个请求的指标的总计 范围 这是一个API 示例链接 http goo gl 5z2W0u 有时甚至收不到账户信息 物体rows不存在于响应中 但仅存
  • Jquery 手风琴 展开全部 折叠全部

    我正在寻找一种包含 全部展开 和 全部折叠 的方法 我已经使用简单的 jquery 手风琴用新代码更新了演示 原始代码应记入 Ryan Stemkoski 的地址 http www stemkoski com stupid simple j
  • 将 ProtoBuf-net 与 gRPC 结合使用

    我正在尝试在工作中构建一个利用 gRPC 的 PoC 谷歌文档here https grpc io docs quickstart csharp html带领我们完成一个示例应用程序 我想知道 protobuf net 特别是 protog
  • 生成自签名证书字符串太长时 OpenSSL 配置错误

    使用以下 OpenSSL 配置 req default bits 2048 default md sha256 default keyfile drone ci web company com key pem distinguished n
  • Tomcat JDBC连接池(释放连接)

    参考Tomcat JDBC 连接池 http people apache org fhanik jdbc pool jdbc pool html 我在给出的独立 java 示例中看到 使用以下命令获取连接datasource getConn
  • 在 xlsxwriter 中定义系列时出现 TypeError“缓冲区大小不匹配”错误

    我正在尝试使用 xlsxwriter 和 pandas 数据以编程方式在 xlsx 文件中创建图表 写入单元格成功 但是当我尝试为散点图定义数据系列时 我收到 TypeError 缓冲区大小不匹配 并且我相当确定我定义的范围是可以接受的 示
  • 如何按升序生成随机数

    我想按升序生成随机数 例如 0 2 3 5 100 但不是2 0 5 这是我到目前为止想到的 public static int vol 5 public static void main String args int randno ge
  • 从 Android 13 中的 locale-config 获取区域设置列表

    为了确保您的应用程序的语言可以在运行 Android 13 或更高版本的设备上的系统设置中进行配置 我们需要创建一个locales configXML 文件并使用以下命令将其添加到我们应用程序的清单中android localeConfig
  • Struts - 所有 .tld 文件位于哪个 jar 文件中

    我正在开发一个Struts基于网络应用程序 我是新来的Struts 我想用struts html tld taglib 由struts提供 在我的jsp页面中 上网查了一下 才知道之前Struts 1 2 9 我们需要找到 tld手动文件
  • 如何在JQuery中查找元素类型

    我有一个数组 里面有不同的元素 类似数组包含输入元素和选择元素 我想检查特定类型 我尝试过 但没有成功 var mandotaryElementsArray mandotary each mandotaryElementsArray fun
  • 获取所有插件的列表

    我想获取所有 WordPress 插件的列表 有一个函数叫做get plugins 但它会返回我安装的所有插件 我需要的是所有插件的列表 无论我之前是否安装过它们 有我可以使用的功能吗 如果没有 是否有 JSON 数据库 API 或任何我可
  • ng-repeat :按单个字段过滤

    我有一系列产品 我正在使用 ng repeat 重复并正在使用 div 按颜色过滤这些产品 过滤器正在工作 但如果产品名称 描述等包含颜色 则应用过滤器后该产品仍然存在 如何将过滤器设置为仅应用于数组的颜色字段而不是每个字段 指定属性 即c
  • swift 中可选值之间的区别?

    有什么区别 var title String Title 1 var title String Title 2 var title String Title 3 如果我要以每种方式设置标题 并且我是否被迫以不同的方式解包每个变量 我在说什么
  • 在 R 中将 sprintf 与向量而不是可变数量的参数一起使用

    我想使用sprintfR 中具有可变数量参数的函数 我可以将这些参数捆绑在一个字符向量或列表中 以避免将这些参数提供给sprintf单独 一个例子将阐明 base string 1 s 2 s 3 s sprintf base string
  • 使用 razor @Html.textboxfor 将字符串表示为货币或小数

    我有一个 ASP NET MVC 应用程序 我正在使用 razor 语法构建 HTML 表 页面模型定义为 model IEnumerable lt DealView Models deal gt 并且模型有一个属性 public stri
  • 如何在基于 Angular2 angular-cli 的项目中包含明确类型的文件

    此场景的最佳实践是什么 我使用创建了一个 Angular2 项目angular cli 即使用ng new 我想包含来自的 TypeScript 类型明确输入 https github com DefinitelyTyped Definit
  • Java 中控制台的文本输出格式

    我正在编写一个简单的日记控制台程序 无法真正弄清楚分解用户文本输入的最简单方法是什么 我在字符串中接收日记笔记 然后我希望能够将该字符串打印到控制台 但未格式化的它当然只是在终端上以一长行显示该字符串 使其阅读起来非常不友好 我如何为每个