我有一个函数,当句子长于给定数字时,在单词前插入换行符:
public static String wrapString(String string, int charWrap)
{
int lastBreak = 0;
int nextBreak = charWrap;
if (string.length() > charWrap)
{
String setString = "";
do {
while (string.charAt(nextBreak) != ' ' && nextBreak > lastBreak)
{
nextBreak--;
}
if (nextBreak == lastBreak)
{
nextBreak = lastBreak + charWrap;
}
setString += string.substring(lastBreak, nextBreak).trim() + "\n";
lastBreak = nextBreak;
nextBreak += charWrap;
}
while (nextBreak < string.length());
setString += string.substring(lastBreak).trim();
return setString;
}
else
{
return string;
}
}
我已经发送了一个包含换行符的句子,所以我希望这个函数不要将现有的换行符仅作为字符计算,而是在遇到换行符时重置计数。
例如,我向该功能发送以下内容:“如果在午夜之前付款,在贴出此通知之日之后,您将受益于减少。\N 3 个月后,将向持有人发送可执行的所有权.”
它将字符“\n”计为一个字符,因此它比它应该更早地切割下一个短语。
您可以先从换行符拆分句子,然后为每个字符串运行代码。最后连接所有的字符串。
String para = "abc abc abc abc abc abc abc abc abc abc \n" +
"abc abc abc abc abc abc abc abc abc abc ";
String[] sentences = para.split("\n");
String finalString = "";
for (String s : sentences) {
finalString = finalString + wrapString(s, 20).trim() + "\n";
}
System.out.println(finalString);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句