23 package com.realtime.crossfire.jxclient.util;
25 import java.util.ArrayList;
26 import java.util.Collection;
27 import org.jetbrains.annotations.NotNull;
58 public static String
splitAsHtml(@NotNull
final String message) {
59 final StringBuilder sb =
new StringBuilder();
60 for (String line :
split(message)) {
61 if (sb.length() > 0) {
75 private static Iterable<String>
split(@NotNull
final String message) {
76 final String paddedMessage = message.trim()+
" ";
78 final Collection<String> result =
new ArrayList<>();
81 while (start < paddedMessage.length() && paddedMessage.charAt(start) ==
' ') {
84 if (start >= paddedMessage.length()) {
88 final int nextSpace = paddedMessage.indexOf(
' ', Math.min(start+
PREFERRED_LINE_LENGTH, paddedMessage.length()-1));
89 assert nextSpace != -1;
91 result.add(paddedMessage.substring(start, nextSpace));
94 final int prevSpace = paddedMessage.lastIndexOf(
' ', nextSpace-1);
95 if (prevSpace != -1 && prevSpace > start) {
96 result.add(paddedMessage.substring(start, prevSpace));
99 result.add(paddedMessage.substring(start, nextSpace));
103 result.add(paddedMessage.substring(start, end));