Маленькие заглавные буквы в Java
Чтобы поменять буквы на заглавные, есть .toUpperCase()
, Чтобы изменить буквы в нижний регистр, есть .toLowerCase()
,
Есть ли способ, чтобы слова появлялись в маленьких заглавных буквах?
(Маленькие заглавные буквы пишутся заглавными буквами с более низкой высотой шрифта, и некоторые шрифты имеют специальный набор для этого дизайна.)
2 ответа
Smallcaps - это свойство шрифта - java в основном слеп к нему. Так что просто конвертируйте регистр на стороне Java, как вам нравится, и используйте правильные fornts на стороне внешнего интерфейса (например, CSS на веб-странице)
String
всегда просто String
, Он не содержит данных о том, какая у него высота шрифта или что-то в этом роде. Маленькие колпачки на самом деле просто вещь для показа. Единственный способ получить информацию о SmallCaps в строку - это если вы играете со странным языковым стандартом и используете некоторые toUpperCase(yourStrangeLocale)
( https://docs.oracle.com/javase/8/docs/api/java/lang/String.html). Но даже в этом случае вы бы смешивали свойства отображения с "необработанными" свойствами данных.
На мой взгляд, ваш лучший путь вперед - это string.toUpperCase()
а затем для каждого предложения сделать .charAt(0)
и увеличить размер шрифта для этого символа.
Редактировать как Unicode было упомянуто в комментариях.
Если ваша система поддерживает Unicode, то вы можете просто ввести Unicode-символы для вашего текста, так как Unicode фактически определяет отдельные символы для них. В Java до сих пор нет никакого метода для получения этих символов, поскольку они не содержат никакого дополнительного значения, а не выделения, как курсив и полужирный, не имеют никакого значения в String
,
Что вы можете сделать, если вы не хотите использовать capitilize и изменять размер шрифта, это написать свой собственный String toSmallCaps(String input)
метод, в который вы переходите char-for-char и заменяете его аналогом unicode-smallcaps. Вот список кодов: http://www.calcresult.com/reference/text/unicode-list.html