用于将文本行换行到最大行宽的 Java 代码
2022-09-01 08:55:11
在我重新发明轮子(糟糕)之前,我想知道是否有一些现有的Java代码可以将文本行换行到给定的最大宽度。理想情况下,它将:
- 尊重现有换行符
- 分割超过字边界最大长度的行
- 通过插入连字符来分解长度超过最大行宽的单词
编辑:这里没有“像素”,只有java.lang.String。“最大宽度”是指一行上的字符数。
在我重新发明轮子(糟糕)之前,我想知道是否有一些现有的Java代码可以将文本行换行到给定的最大宽度。理想情况下,它将:
编辑:这里没有“像素”,只有java.lang.String。“最大宽度”是指一行上的字符数。
Apache commons具有WordUtils和包装功能:
http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/text/WordUtils.html
P.S. 看起来这已被弃用,您需要使用
相反。
使用自动换行库(在 Maven Central 上可用)。
以下是使用它的一种方法:
String text = "hi there how are you going?";
String wrapped =
WordWrap.from(text)
.maxWidth(10)
.insertHyphens(true) // true is the default
.wrap();
输出为:
hi there
how are
you going?
该图书馆保留了线路上的主要空间,这是对Apache commons-lang产品行为的一个抱怨。您还可以指定函数,以便在呈现文本时获得像素精确的结果。stringWidth
该库具有不错的单元测试覆盖率(当您考虑从Web复制和粘贴代码块时要记住这一点!
Maven 依赖关系是:
<dependency>
<groupId>com.github.davidmoten</groupId>
<artifactId>word-wrap</artifactId>
<version>0.1.9</version>
</dependency>
请务必检查是否有更高版本。