在Java中将字符串拆分为几个不同的行

时间:2011-11-29 16:54:18

标签: java string console char

我有一个很长的字符串,由单词标点符号和空格组成。我试图修改字符串以在每个\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来分割单词,则应该允许该单词保留在该行上,而在该单词的末尾插入新行。

在没有大量复杂代码的情况下,是否有一种全能的方法?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

我会写:

s = s.replaceAll("(.{20,}?)\\s+", "$1\n");

这将找到至少20个非换行符的每个实例,后跟一个或多个空格字符,并用换行符替换空格。或者,要使x在运行时可判定(而不是硬编码为20),我会写:

s = s.replaceAll("(.{" + x + ",}?)\\s+", "$1\n");