2011-01-06 50 views
1

我正面臨着字符串格式化的問題。在我的應用程序需要發送郵件到電子郵件的網絡的服務。格式需要是這樣字符串格式+黑莓+ java

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

爲此,我已經使用/ n和線路/噸突破答間距。但真正的問題是與'名稱'項目。 '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; 

    } 
+0

*無法正常工作* - 您的意思是,如果您使用銀行位置填充名稱字符串,web服務會拒絕您的電子郵件內容? – 2011-01-06 07:24:15

+0

@Andreas_D:不,我的意思是電子郵件的格式不正確。正確的格式應該是所有名稱必須在一列中,所有類都必須是一列。但是,這裏所有這些內容並沒有出現在不同的欄目中。 – nikki 2011-01-06 07:30:52

回答

1

在我看來,你嘗試創建一個電子郵件身體看起來在觀衆以及對齊。我想,你正在使用比例字體(比如times或者helvetica/arial)。

如果表看起來對齊,但通常不在乎,但是如果消息對齊。確保字符數是每列是相同的,即使結果在屏幕上看起來很醜。所以真的不應該使用getFont().getAdvance()方法來使字符串(幾乎)大小相同,而是使用String#size()代替填充。

4

使用String.format()嘗試,如果它的存在在JDK版本使用的是黑莓

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 env,你可以去

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