У меня есть длинная строка, которую мне нужно проанализировать в массив строк, длина которых не превышает 50 символов. Самое сложное в этом для меня - убедиться, что регулярное выражение находит последний пробел перед 50 символами, чтобы сделать чистый разрыв между строками, поскольку я не хочу, чтобы слова обрезались.
public List<String> splitInfoText(String msg) {
int MAX_WIDTH = 50;
def line = [] String[] words;
msg = msg.trim();
words = msg.split(" ");
StringBuffer s = new StringBuffer();
words.each {
word -> s.append(word + " ");
if (s.length() > MAX_WIDTH) {
s.replace(s.length() - word.length()-1, s.length(), " ");
line << s.toString().trim();
s = new StringBuffer(word + " ");
}
}
if (s.length() > 0)
line << s.toString().trim();
return line;
}