Форматирование строк + Blackberry + Java - PullRequest
1 голос
/ 06 января 2011

У меня небольшая проблема с форматированием строки.В моем приложении мне нужно отправить электронное письмо на веб-службу. Формат электронного письма должен быть таким:

Name           Class            Section              Position    
Sam            5                A                    1    
Joseph         7                C                    4

. Для этого я использовал / n и / t для разрывов строк и пробелов.Но настоящая проблема с пунктом «Имя».Длина элемента name варьируется.В настоящее время мой подход заключается в том, что я беру справочную строку достаточно длинной и дополняю пробелы в каждой строке имени, пока ее длина не станет равной базовой строке.

Проблема, с которой я сталкиваюсь, заключается в том, что этот подход неработает нормально, когда я добавляю пробелы, но вместо пробелов, если я добавляю любой другой символ, скажем «x», результирующая строка корректно форматируется.

Функция для добавления пробелов:

  private String getModifiedName(String name){
         String testString  = "This is a very big string";

         while(getFont().getAdvance(testString) > getFont().getAdvance(name)){
             name = name + " ";

         }



         return name;

     }

Ответы [ 2 ]

4 голосов
/ 06 января 2011

Попробуйте использовать String.format(), если оно есть в версии jdk, которую вы используете с blackberry

package org.life.java.so.questions;

/**
 *
 * @author Jigar
 */
public class StringFormatDemo {
    public static void main(String[] args) {
        String name = "Jigar";
        String header = String.format("Name \t Class \t Section \t Positoin");
        String dataRow1 = String.format("%s \t %s \t %s \t %s",name,"A","IT","JavaDev");
        System.out.println(header);
        System.out.println(dataRow1);
    }
}

Обновление:

Поскольку вышеприведенный метод отсутствует в вашей Java-среде, вы можете перейти на

javax.microedition.global.Formatter.formatMessage(...)

1 голос
/ 06 января 2011

Мне кажется, что вы пытаетесь создать тело письма, которое выглядит хорошо выровненным в средстве просмотра. И я полагаю, вы используете пропорциональный шрифт (например, раз или helvetica / arial).

Веб-сервисам обычно не важно, выравнивается ли таблица , но важно, чтобы сообщение было выровнено. Убедитесь, что количество символов в каждом столбце одинаково, даже если результат выглядит ужасно на экране. Поэтому на самом деле не следует использовать метод getFont().getAdvance(), чтобы сделать строки (почти) одинакового размера, а вместо этого использовать String#size() для заполнения.

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