Разное количество для String.length () для разных языков - PullRequest
1 голос
/ 14 марта 2020

Что я хочу

Учитывая строку s и координату x1, я хочу напечатать в pdf, учитывая x1 в центре. Мне нужна начальная x-координата

задача

Я могу легко рассчитать начальную координату (x) с помощью x1-s.length () / 2, чтобы расположить ее в центре, но она не работает для хинди (Язык)

Как рассчитать фактическое количество символов, игнорируя символы Юникода, кроме букв. Я в основном хочу напечатать строку в центре, переменная String

1 Ответ

0 голосов
/ 15 марта 2020

Существует несколько причин, по которым метод length может дать вам неожиданный ответ.

Метод длины в String возвращает количество значений char в строке, но есть больше Unicode символов, чем возможно char значений, поэтому для некоторых символов для хранения символа используется более одного значения символа. Чтобы получить ожидаемую длину, попробуйте следующее: s.codePointCount(0, s.length())

Если ваша строка содержит Объединяющий диакритический знак , который использует один символ, но отображается в сочетании с другим символом. Вот вопрос о том, как их определить: обнаружить любой комбинирующий символ в Java

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...