Как избежать разрыва слова, содержащего нестандартный символ? - PullRequest
0 голосов
/ 30 января 2019

В моем приложении пользователь вводит текст.Я помещаю текст в массив и заменяю одну из букв каждого слова на японский символ в случайном порядке.

word.replace(letter, japaneseSymbol);

Например:

Wo あ dOne w いrdДва слова う hree w え rdFour wordF お ve.

Затем я отображаю текст в TextView:

content.setText(TextUtils.join(" ", convertedWords));

Проблема заключается в том, что разрыв строки отображается неправильно:

Wo あ dOne w い rdДва слова う hree w
え rdFour wordF お ve.

Я не хочу разбивать слово.У вас есть идеи, как избежать разрыва слова?

1 Ответ

0 голосов
/ 02 февраля 2019

Я нашел решение здесь - https://gamedev.stackexchange.com/questions/50547/how-to-force-a-line-break-before-the-last-word-of-a-line-reach-the-edge

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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...