2014-02-04 2 views
4

Предположим, я хочу, чтобы напечатать «Item» и его «цена» в каком-то определенном формате, какКак получить строку в определенном формате в Android

abc   2 
asdf   4 
qwer xyz  5 

и 2, 4, 5 должны быть как в одном столбце.

Для этого я tried-

StringBuilder sb = new StringBuilder(); 

sb.append(String.format("%s%25s", "abc","2")); 
sb.append(String.format("%s%25s", "asdf","4")); 
sb.append(String.format("%s%25s", "qwer xyz","5")); 

tv.setText(sb.toString()); //tv is a text view 

но выхода -

abc    2 
asdf    4 
qwer xyz    5 

Я хочу "а" и после 25 пространств я хочу "5", но он считает 25 из пространства abc не с самого начала

ответ

5

Вы перепутали заказ:

StringBuilder sb = new StringBuilder(); 

sb.append(String.format("%-25s%s", "abc","2")); 
sb.append(String.format("%-25s%s", "asdf","4")); 
sb.append(String.format("%-25s%s", "qwer xyz","5")); 

tv.setText(sb.toString()); //tv is a text view 

Этот знак минус перед 25 означает инвертировать выравнивание текста. Последний шаг - использовать моноширинный шрифт. Этого можно достичь следующим образом:

tv.setTypeface(Typeface.MONOSPACE); 
1

Вы можете использовать вкладку в каждой строке. Надеюсь, это сработает.

StringBuilder sb = new StringBuilder(); 

    sb.append(String.format("%s%25s\t", "abc","2")); 
    sb.append(String.format("%s%25s\t", "asdf","4")); 
    sb.append(String.format("%s%25s\t", "qwer xyz","5")); 

    tv.setText(sb.toString()); 
+0

Извините, но это вздор. Он просто добавит к выходу над вкладкой в ​​конце. – rekire

Смежные вопросы