Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
字符串格式化+黑莓+java_Java_Blackberry - Fatal编程技术网

字符串格式化+黑莓+java

字符串格式化+黑莓+java,java,blackberry,Java,Blackberry,我在设置字符串格式方面遇到了一些问题。在我的应用程序中,我需要向web服务发送电子邮件 Name Class Section Position Sam 5 A 1 Joseph 7 C 4 为此,我使用/n和/t表示换行符和间距。但真正的问

我在设置字符串格式方面遇到了一些问题。在我的应用程序中,我需要向web服务发送电子邮件

Name           Class            Section              Position    
Sam            5                A                    1    
Joseph         7                C                    4
为此,我使用/n和/t表示换行符和间距。但真正的问题在于“名称”项。“名称”项的长度各不相同。目前,我的方法是使用足够长的引用字符串,并在每个名称字符串中填充空格,直到其长度等于基本字符串

我面临的问题是,当我附加空格时,这种方法不能很好地工作,但是如果我附加任何其他字符(如“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;

     }

在我看来,您试图创建一个在查看器中看起来很协调的电子邮件正文。我猜,您使用的是一种比例字体,如times或helvetica/arial


Web服务通常不关心表是否对齐,而是关心消息是否对齐。确保每列的字符数相同,即使结果在屏幕上看起来很难看。因此,不应该使用getFont.getAdvance方法使字符串大小几乎相等,而是使用Stringsize作为填充。

在我看来,您尝试创建的电子邮件正文在查看器中看起来很对齐。我猜,您使用的是一种比例字体,如times或helvetica/arial

Web服务通常不关心表是否对齐,而是关心消息是否对齐。确保每列的字符数相同,即使结果在屏幕上看起来很难看。因此,确实不应该使用getFont.getAdvance方法使字符串大小几乎相等,而是使用Stringsize作为填充。

如果您在blackberry上使用的jdk版本中有Stringsize,请尝试使用它

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环境中没有上述方法,因此您可以使用

如果您与blackberry一起使用的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环境中没有上述方法,因此您可以使用


不好用-你的意思是,如果你用银行空格填充姓名字符串,Web服务会拒绝你的电子邮件内容吗?@Andreas_D:不,我的意思是电子邮件的格式不正确。正确的格式应该是所有名称必须在一列中,所有类必须在一列中。但在这里,所有这些内容都不会出现在不同的列中。你到底有什么问题?你的意思是当你查看电子邮件时布局被破坏了吗?如果电子邮件支持HTML,则建议您使用表格alignment@Manny:是的,布局被破坏了。。我应该如何在blackberry中使用table?因为blackberry os 4.5支持html电子邮件。不确定您的需求,但如果您可以包括html电子邮件,请仔细检查您的用户需求。另外,我不确定您的web服务是否会自动转义html字符。如果支持html,请尝试使用普通html表格式化,例如Col 1Col 2Val 1Val 2Doesn无法正常工作-您的意思是,如果您在名称字符串中填入银行空格,Web服务会拒绝您的电子邮件内容吗?@Andreas_D:不,我的意思是电子邮件的格式不正确。正确的格式应该是所有名称必须在一列中,所有类必须在一列中。但在这里,所有这些内容都不会出现在不同的列中。你到底有什么问题?你的意思是当你查看电子邮件时布局被破坏了吗?如果电子邮件支持HTML,则建议您使用表格alignment@Manny:是的,布局被破坏了。。我应该如何在blackberry中使用table?因为blackberry os 4.5支持html电子邮件。不确定您的需求,但如果您可以包括html电子邮件,请仔细检查您的用户需求。另外,我不确定您的web服务是否会自动转义html字符。如果支持html,请尝试使用普通html表格式化它,例如Col 1Col 2Val 1Val 2life.java:我想到了这一点,但我的jdk没有String.formatlife.java这样的方法:您好,您能告诉我如何使用此方法吗?请参考其文档它几乎与上面相同,java:我想到了这个,但是我的jdk没有String.formatlife.java这样的方法。您好,您能告诉我如何使用这个方法吗?请参考它的文档,它几乎与上面一样,