如何打印包含toString()结构化值的2D数组?

时间:2015-01-10 23:26:59

标签: java arrays methods return tostring

到目前为止,我的问题是我创建了一个包含六个值的数组。每个值等于" profile"这需要创建一个对象实例(?)(我为现在屠杀一切而道歉,但请耐心等待我)。如何打印此数组并将打印结果放入变量中,以便我可以返回'它?

编辑好的澄清一下。我想知道如何在下面的代码中打印applicant []数组。但是,我还想将它放在一个变量中,这个变量允许我将它返回给方法,所以我可以将它调用到另一个类。如何如何使打印的数组或数组本身可以从另一个类调用。我需要更改或删除什么。

有关以下代码的说明:

*我理解该方法是用' void'声明的,我只是这样做,所以它可以编译。 (我应该把它放在那里?)

*学生从另一个名为Applicaiton的课程中的构造函数调用

*当这些新对象实例(?)通过toString()

完成时

*下面的课程,因为它存在,完美编译。

*如果可以,请尽可能简单地回答,并非常感谢您的考虑。

公共类个人资料

{

public void applicantProfiles()
{

    Application student1 = new Application("Blair", "C", "Bass", "12345 Rainbow Road", "06010 Bristol, CO", "11/15/97", "Constance Billard School for Girls", 2380, 33, 4.0, 61681, 234400.81, false, false, false);
    Application student2 = new Application("Daniel", "R", "Humphrey", "36191 79th Street", "10024 New York, NY", "4/20/96", "St. Jude's School for Boys", 1800, 31, 3.6, 48347, 26489, false, true, true);
    Application student3 = new Application("Charlie", "L", "Trout", "21910 Devonshire", "91303 Northridge, CA", "7/27/97", "Harvard-Westlake", 2100, 28, 3.9, 61681, 41000, true, false, true);
    Application student4 = new Application("Damascus", "L", "Roberto", "667 Ofarrel Street", "94109 San Francisco, CA", "2/14/97", "Galileo Academy of Science and Technology", 2382, 27, 3.8, 61681, 39678, false, false, true);
    Application student5 = new Application("Sofia", "M", "Montrone", "24980 Oscar Lane", "32468 Willow Park, OR", "11/31/95", "Bayview High School", 2400, 30, 3.9, 48347, 99846.22, true, true, false);
    Application student6 = new Application();

    Application[] applicant;
    applicant = new Application[6]; 
    applicant[0] = student1;
    applicant[1] = student2;
    applicant[2] = student3;
    applicant[3] = student4;
    applicant[4] = student5;
    applicant[5] = student6;

    for (int index = 0; index < applicant.length; index++)
    {
        System.out.println(applicant[index]);
    }
}

}

3 个答案:

答案 0 :(得分:0)

你要做的最简单的事情就是制作一个带有你想“打印出来”的数组的字符串。在python中,您可以打印并返回列表,但不能使用Java。最简单的方法是:

String value = "[" + value1 + ", " + value2 + ", " ... + valuen + "]";

如果返回大小发生变化,您可以使用for循环自动执行此操作。希望这有帮助!

答案 1 :(得分:0)

您必须覆盖Application类中的toString()方法,并以您希望的方式打印出结构。当您调用System.out.println(some_object)时,将调用为该对象声明的toString()方法。例如,在Application类中执行以下操作。

@Override
public String toString() {
    String printString = "First name = " + this.firstName + ", Last name = " + this.lastName;
    // I've shown this just for first name and last name structured in a very simple manner
    // You will have to adjust it to your needs
    return printString; // This is what will be printed
}

toString()方法属于Object类,因此您创建的每个类都将自动继承此方法。覆盖它取决于你。

答案 2 :(得分:0)

而不是函数中的void,你应该有String,并将它放在函数的末尾,而不是for循环:

String ret = Arrays.deepToString(applicant);
return ret;

如Sunil所述,您仍然需要toString()中的Applicant方法。