Как выровнять символы в строке?

381
03 июня 2017, 15:06

Есть массив строк. Нужно чтобы каждая строка начиналась с одного из наборов:

{"F+R|"," R |"," F |"}

но так, чтобы отступ слева был одинакового размера (в данном случае 4 символа).

Что должно получиться (пример):

 F |bla bla bla bla bla bla bla bla bla bla bla bla
 R | bla...bla...bla bla bla bla bla bla bla bla bla bla
F+R| bla...bla...bla bla...bla...bla bla...bla...bla bla...bla...bla

а получается

F |bla bla bla bla bla bla bla bla bla bla bla bla
R | bla...bla...bla bla bla bla bla bla bla bla bla bla
F+R| bla...bla...bla bla...bla...bla bla...bla...bla bla...bla...bla

Строки выводятся в ListView (из EditText).

Answer 1

Для того, чтобы поставить пробелы вначале текста, используйте неразрывный пробел (код символа #00A0) - равен по ширине обычному пробелу или цифровой пробел (код символа #2007) - равен по ширине цифрам. Вариантов два, так как разные символы в шрифте имеют разную ширину и поэтому один обычный пробел не равен по ширине одной букве, соответственно выравнивания через пробелы добится не так просто. Возможным решением будет использование какого то моноширинного шрифта, где все символы равны по ширине.

Применительно к Android строка с ведущим неразрывным пробелом может выглядеть так:

"\u00A0 F | bla bla bla bla bla bla bla bla bla bla bla bla"

с цифровым пробелом (этот вариант должен решить проблему):

"\u2007F\u2007| bla bla bla bla bla bla bla bla bla bla bla bla"
Answer 2

Возможно, заменить пробел другим символом - выход?

F_R|
_R_|
_F_|

F-R|
-R-|
-F-|
READ ALSO
Как узнать, какие порты нужно пробросить при использовании Java ServerSocket?

Как узнать, какие порты нужно пробросить при использовании Java ServerSocket?

Приветствую всех! У меня следующая проблема: есть сервер на Java, использующий для работы ServerSocket , к которому подключаются несколько клиентовВ...

943
Android, JSON, полученный с сервера

Android, JSON, полученный с сервера

Учусь работать с Android, использую этот пример: http://androiddocsru/parsing-json-poluchaem-i-razbiraem-json-s-vneshnego-resursa/ Все замечательно, выводит в лог, вероятно глупый...

352
Вылетает исключение fragment already active

Вылетает исключение fragment already active

Вылетает исключение в методе setArguments(Bundle)Я читал другие ответы на этот вопрос

302
Перевод foreach с С# на Java

Перевод foreach с С# на Java

Как можно foreach (List<Tuple<int, int>> c in coords) переписать на Java?

377