我有一个很长的字符串,由单词标点符号和空格组成。我试图修改字符串以在每个\n
个字符后添加一个新行(x
)但保留整个单词。例如:
邪恶的人类用胡椒喷雾喷洒无辜的学生
x = 20
输出如下:
An evil human sprayed 21 chars
innocent students in 20 chars
the face with pepper 20 chars
spray end of string
如果通过在\n
个字符之后插入x
来分割单词,则应该允许该单词保留在该行上,而在该单词的末尾插入新行。
在没有大量复杂代码的情况下,是否有一种全能的方法?
答案 0 :(得分:2)
答案 1 :(得分:2)
我会写:
s = s.replaceAll("(.{20,}?)\\s+", "$1\n");
这将找到至少20个非换行符的每个实例,后跟一个或多个空格字符,并用换行符替换空格。或者,要使x
在运行时可判定(而不是硬编码为20
),我会写:
s = s.replaceAll("(.{" + x + ",}?)\\s+", "$1\n");