返回null的字符串赋值

时间:2011-03-02 11:49:45

标签: java string null variable-assignment

为什么我把// private String namespace =“### Name:”+ name +“###”;和system.out.println(namespace)它出来了吗?

我想创建一个标签制作程序,但我仍然坚持如何排列右侧的#。

/*################################################
###               ANNUAL CONFERENCE            ###
############################################### #
###Name:Simon                             ###
###                                           ###
############################################### #
###Organization:NBA             ###
###                                             ###
################################################*/

如何为我设置的任何给定名称排列它们? 我想设置名称,设置组织,打印标签的名称和组织,清除名称和组织,打印空白标签。

----------------更新4:09 AM --------------------------- - 我将在此之后建模我的代码:

public class Divers {
    public static void main(String args[]){
      String format = "|%1$-10s|%2$-10s|%3$-20s|\n";
      System.out.format(format, "FirstName", "Init.", "LastName");
      System.out.format(format, "Real", "", "Gagnon");
      System.out.format(format, "John", "D", "Doe");

      String ex[] = { "John", "F.", "Kennedy" };

      System.out.format(String.format(format, (Object[])ex));
    }
   }

但有人可以告诉我如何以其他方式做到这一点吗?仅用于学习目的

public class AddressBookTester {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
TagMaker test =  new TagMaker("Simon", "NBA");

test.printlL();

    }

}

public class TagMaker {

private String name;
private String organization;
private String l = "################################################";
private String annual= "###               ANNUAL CONFERENCE            ###";
//private String namespace = "###Name:"+name+"                ###";
private String l2= "###                                             ###";
//private String organizationspace= "###Organization:"+organization+"###";
TagMaker (){

}

TagMaker (String tempName, String tempOrg){
name = tempName;
organization = tempOrg;

}
    void setname(String tempName){
        name = tempName;
    }

    String getname(){
        return name;
    }

    void setorganization(String tempOrg)
    {
            organization = tempOrg;
    }

    String getorganization(){
        return organization;
    }


    void printlL(){
        System.out.println(l);
        System.out.println(annual);
        System.out.println(l);
        System.out.println("###Name:"+name+"                             ###");
        System.out.println(l2);
        System.out.println(l);
        System.out.println("###Organization:"+organization+"             ###");
        System.out.println(l2);
        System.out.println(l);

    }
    }

3 个答案:

答案 0 :(得分:1)

仔细查看String.format(...),尤其是Formatter documentation。它开头有点复杂,但它确实允许你打印固定长度的字符串(即用空格填充)。

您也可以find this页面提供帮助,其中包含一些有用的示例(尽管您必须对其进行调整和修改)。

答案 1 :(得分:1)

您需要为输出的最大宽度(以字符为单位)设置常量。然后你可以做一些简单的算术来计算你需要多少空格/字符等来正确格式化你的输出。

假设max_width = 60。

这是一个标题: ############################################################ (完整的60)

你根据你输出的字符串的字符长度来计算缩进和事物。

e.g。如果你想打印Name: Simon得到它的长度并从max_length等减去等。

HTH。

答案 2 :(得分:0)

首先,您需要了解您的线路有多长。其次,您确定徽章内文本的长度。最后,动态插入空格以使长度相等的行。