相关疑难解决方法(0)

用于将文本行包装到最大行宽的Java代码

在我重新发明轮子(很差)之前,我想知道是否有一些现有的Java代码用于将文本行包装到给定的最大宽度.理想情况下它会:

  • 尊重现有的航线
  • 在单词边界上分解超过最大长度的行
  • 通过插入连字符来分解长度超过最大线宽的单词

编辑:这里没有"像素",只有java.lang.String."最大宽度"是指一行中的字符数.

java text line-breaks word-wrap

19
推荐指数
2
解决办法
3万
查看次数

在Java中查找Regex的最新索引

我有一个字符串%/O^/O%/O.我想找到最后一个/分割字符串.第一个尝试是:\/[POL]$但是它包含了"O"明显的包容性.有人提示吗?

java regex

10
推荐指数
4
解决办法
2万
查看次数

Java中将字符串分成多行

我有一个长度为 n 的单行字符串,我想将其分成最多 3 行。每行最多可以有 45 个字符,之后我想添加一个换行符(“\n”)。第 3 行最多可以有 42 个字符,如果字符串超出这个范围,我需要包含 3 个点 (...),从而使第 3 行的总字符数也达到 45 个。

条件是换行符不应添加在单词中间。我如何有效地做到这一点?这个操作只是整个程序的一小部分,但是会被重复调用。所以我不确定我是否应该真正担心效率。

我现在正在做的是,我首先找出单词之间的空格在哪里,然后将其添加到列表中。然后,我迭代列表并找到 3 个索引,每个索引代表每行的结束词。因此,第一个索引将是最接近 45 的空格,第二个最接近 90,第三个最接近 135。然后,我使用这些索引来分割实际字符串,并分别添加“\n”和“...”。这是我的代码:

//maxCharsPerLine will be 45
public String splitString(String input, int maxCharsPerLine){    
        String output = "";
        ArrayList<Integer> spaces = new ArrayList<Integer>();

        // Logic to figure out after which word the sentence should be split so that we don't split in middle of a word
        for(int index = 0; index < input.length(); index++){
            if(input.charAt(index)==' '){
                spaces.add(index);
            } …
Run Code Online (Sandbox Code Playgroud)

java algorithm

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×3

algorithm ×1

line-breaks ×1

regex ×1

text ×1

word-wrap ×1