如何在单个print语句中返回数组中的多个数字

时间:2013-04-19 03:23:07

标签: java arrays loops

public class Main {
public static void main(String[] args) {
    java.util.ArrayList<StudentDataArray> info = new java.util.ArrayList<StudentDataArray>();
    int amountOfPeople = KeyboardInput.promptForInt("Enter how many people you plan to enter into the list.");
    for(int a=0;a<amountOfPeople;a++) {
        try {
        double[] grade = new double[5];
        grade[0]=KeyboardInput.promptForDouble("Enter the First grade");
        grade[1]=KeyboardInput.promptForDouble("Enter the Second grade");
        grade[2]=KeyboardInput.promptForDouble("Enter the Third grade");
        grade[3]=KeyboardInput.promptForDouble("Enter the Fourth grade");
        grade[4]=KeyboardInput.promptForDouble("Enter the Fifth grade");
            info.add(new StudentDataArray(KeyboardInput.promptForString("Enter the First Name"),KeyboardInput.promptForString("Enter the Last Name"),grade,KeyboardInput.promptForChar("Enter the Final Grade")));
        }catch(IllegalArgumentException e){
            System.out.println("Hello World :)");
        }
    }
    for(int b=0;b<amountOfPeople;b++) {
        System.out.printf("%-10s %-10s %-3f %-3s",info.get(b).getFN(),info.get(b).getLN(),info.get(b).getTS(),info.get(b).getFG());
    }
}
}

public class StudentDataArray {
private String firstName;
private String lastName;
private double[] testScore;
private char finalGrade;
public StudentDataArray(String FN, String LN, double[] TS, char FG) {
    firstName = FN;
    lastName = LN;
    testScore = TS;
    finalGrade = FG;
}
public void setFN(String FN) {firstName = FN;};
public void setLN(String LN) {lastName = LN;}
public void setTS(double[] TS) {testScore = TS;}
public void setFG(char FG) {finalGrade = FG;}
public String getFN() {return firstName;};
public String getLN() {return lastName;}
public String getTS() {
    for(int a=0;a<testScore.length;a++) {
        return testScore[a]+"   ";
    }
    return null;
}
public char getFG() {return finalGrade;}
}
嘿伙计们,这是我所有要看的代码。我想要做的是将多个双打返回到代码中的一个位置。看起来像是......

Ethan Michael 10 20 30 40 50 A

这一切都显示在一个语句中 [10 20 30 40 50]

因为我正在使用双[]我不确定如何解决这个问题。

谢谢你们!

6 个答案:

答案 0 :(得分:1)

你可以使用for语句将所有信息连接成一个变量,然后打印出来。

答案 1 :(得分:1)

以下是您如何在一条简洁的线条中完成的工作:

String s = Arrays.toString(testScores).replaceAll("[\\[\\],]", "");

你可以在任何需要字符串的地方使用这个探索(即等于dign右边的所有内容)。

关键点是使用[Arrays.toString()][1],它会生成类似"[10, 20, 30, 40, 50]"的字符串,然后调用String.replaceAll()来删除所有标点符号。

答案 2 :(得分:0)

看来你需要这样的东西:

public String getTS() {
    returnString := "";
    for(int a=0;a<testScore.length;a++) {
        returnString += testScore[a]+"   ";
    }
    return returnString;
}

答案 3 :(得分:0)

public String getTS() {
yourString:= "";
for(int a=0;a<testScore.length;a++) {
        yourString+= testScore[a]+"   ";
    }
  return ts;
 }

答案 4 :(得分:0)

我认为最简单的方法是将GetTS()转换为类似的内容:

public String getTS() {
    String ts = "";
    for(int a=0;a<testScore.length;a++) {
        ts += testScore[a]+"   ";
    }
    return ts;
}

请注意,Main.java中的格式字符串应更改为"%-10s %-10s %-3s %-3s"

答案 5 :(得分:0)

很多答案但没有使用StringBuilder,建议不要使用循环中的连接。它不会在每次迭代中创建一个新的String对象,因此在资源上更容易。就这样:

public String getTS() {
    StringBuilder sb = new StringBuilder();
    for(int a=0;a<testScore.length;a++) {
        sb.append(testScore[a]+" ");
    }
    return sb.toString();
}