Java 返回空的字符串赋值

Java 返回空的字符串赋值,java,string,null,variable-assignment,Java,String,Null,Variable Assignment,为什么我把//private String namespace=“#####Name:+Name+”####“;和system.out.println(名称空间)是否为空 我想创建一个tagmaker程序,但我被困在如何排列右边的#上 /*################################################ ### ANNUAL CONFERENCE ### ##############################

为什么我把//private String namespace=“#####Name:+Name+”####“;和system.out.println(名称空间)是否为空

我想创建一个tagmaker程序,但我被困在如何排列右边的#上

/*################################################
###               ANNUAL CONFERENCE            ###
############################################### #
###Name:Simon                             ###
###                                           ###
############################################### #
###Organization:NBA             ###
###                                             ###
################################################*/
我如何将它们排列为我设置的任何给定名称? 我想设置名称,设置组织,打印带有名称和组织的标记,清除名称和组织,然后打印一个空白标记

----------------更新时间:上午4:09---------------------------- 下面我将对我的代码进行建模:

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);

    }
    }

请仔细查看String.format(…),尤其是。开始时有点复杂,但它确实允许您以固定长度打印字符串(即用空格填充)


您可能也会看到一些有用的页面,其中有几个示例(尽管您需要进行一些调整和修改)。

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

假设最大宽度=60

这里有一个标题: 来自码码码码码码码码码码码码码方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方###################(完整60)

您可以根据输出字符串的字符长度计算缩进和其他内容

e、 g.如果你想打印
Name:Simon
得到这个的长度,然后从max_长度中减去,等等


嗯。

首先你需要知道你的线路有多长。其次,确定徽章内文字的长度。最后,您可以动态插入空格,以使行数相等。

您使用的是制表符还是空格?提示:我正在使用spaces@S.Lott为什么我把//private String namespace=“####Name:+Name+”###“;我做system.out.println(名称空间);它打印出空值?@CuriousStudent。您知道
//私有字符串…
是注释吗?没用,我怎么能像你说的那样做?我想我只是打算在这个公共类diverss{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));}}如果你不介意的话,你能告诉我怎么做吗?我打算将我的代码修改为.format选项,但出于学习目的,我想学习您描述的方式。谢谢,如果StackOverflow上有人为您编写代码,您将不会从本实验练习中学到太多;-)考虑一下我和@DerMike的建议,并尝试一下。你有你需要的所有基本信息。提示:使用诸如if/else之类的低级构造和for循环来实现,以从练习中获得最大的好处。祝你好运。@5arx我必须把它设置为一个变量,对吗?而不是这个System.out.println(“####Name:+Name+”###);我必须编写私有字符串namespace=“####Name:+Name+”###“;和system.out.println(名称空间)?但是当我这样做的时候,名字名的结果似乎是空的,你的int'max_length'设置为60。1.因此,可以使用for循环打印“#”最大长度的次数。这会显示页眉,最后显示页脚。2.您有一个int来表示左缩进和右缩进的字符数,比如说它是3。因此,对于您输出的每一行,您将有3个缩进+空格+名称或组织+空格+3个缩进。如果从“最大长度”中减去此值,则在输出行尾所需的最终空格+3缩进之前,您将获得需要右键填充行的空格数。诸如此类的事情。如果你不介意的话,你能告诉我怎么做吗?我打算将我的代码修改为.format选项,但出于学习目的,我想学习您描述的方式。非常感谢。