(问题因为广泛而被关闭所以我试图更清楚)
我发现了许多重复的问题,但它们都是其他编程语言。
我有一个字符串,我想要打破字符串的每68个字符。但这很可能会导致句子在一个单词中被打破。
例如
我是爱猫狗,但不是他们携带的逃亡者。我也很瘦 k,猫有时很粗鲁,因为我不会拥抱我 他们也是。总的来说,虽然猫和狗都很棒。
相反,我想在字符68之前的最近空间处打破这些字符串。然后我可以以不中断单词的方式呈现字符串。
最终这个问题可能可以通过for循环检查每个char 68以及一次一个以下来查看它们是否为空格来解决。当它找到空间时,可以在那个焦点处切割它。或者,我可以一次添加一个单词,直到我传递68个字符而不添加最后一个单词。第三种选择是在第68个字符处对字符串进行子串,然后在空格字符的lastIndexOf处第二次对字符串进行子串。
但是,我的所有想法看起来都非常低效,我想知道是否有任何已经创建或内置的字符串方法可以做到这一点?
答案 0 :(得分:4)
您可以使用Apache commons WordUtils.wrap()
中的[code]方法:
代码:
import org.apache.commons.lang3.*;
class WrapTest {
public static void main (String[] args) {
String str = "I am a love cats and dogs but not the flees they carry. Also i think that cats are sometimes rude because they do not hug me when i want them too. Overall though cats and dogs are both great.";
str = WordUtils.wrap(str, 68);
System.out.println(str);
}
}
输出:
I am a love cats and dogs but not the flees they carry. Also i think
that cats are sometimes rude because they do not hug me when i want
them too. Overall though cats and dogs are both great.