Java: String.format с флагом '+' для языка устройства RTL поставить знак после числа - PullRequest
1 голос
/ 07 августа 2020

Проблема в моем приложении Anbdroid возникает, когда String.format используется с флагом + (ведущий знак перед числом), а текущий язык - RTL (в моем случае - иврит). Строка кода имеет вид, например:

String.format(Locale.US, "%+06.2f", n)

Для n=2 результат будет +02.00 (ожидается), если язык устройства - английский sh или любой другой LTR, но результат - 02.00+ ( неожиданно), когда язык устройства - иврит. Таким образом, знак для RTL находится в конце данного числа, несмотря на Locale.US в качестве первого аргумента в String.format.

Вопрос: как правильно использовать флаг + в случае, когда устройство язык - RTL?

PS

Оказалось, что только на эмуляторе, на реальном устройстве удивительно хорошо. Я сожалею, что сначала не проверил проблему на реальном устройстве, полагаясь на эмулятор AVD Android Studio.

...