Понял суть, спасибо.
Хардкодить не наш метод, ибо 76 комбинаций, начиная от : ) и заканчивая :troll:
Всё же эти посимвольные проверки окажутся медленнее чем поиск подстроки всей текстовой комбинации смайла (инфа почти 100%).
Волшебный String.indexOf ()
Давным-давно жил-был битмапный шрифт. И было у него несколько проверок на диапазоны символов, которые позволяли ему рисоваться правильно, в соответствие с задумкой Вызывателя функций.
Что за проверки? Зачем?
Символы в картинках поделены на блоки - русские маленькие, рус большие, английские маленькие, большие, числа, символы-закорючки.
Для них и были проверки некие в цикле по тексту.
char c = text.charAt (k);
if (c >= '0' && c <= '9') {
block = DIGITS;
offset = k;
}
И так для всех диапазонов (русские, англ, закорючки).
Однако! Это оказалось медленнее, чем
offset = ALL_FONT_CHARS.indexOf (text.charAt (k));
ALL_FONT_CHARS содержит все доступные для отрисовки символы шрифта.
Соответственно, при загрузке шрифта требуется дополнительный массив, в котором будут соответсвия индексов и блоков-картинок, что совсем не накладно.
Кстати, буквы
ёЁ стоят особняком от остальных русских букв в таблице символов, что совсем нектати.