从ArrayList格式化Java中的输出

时间:2014-02-20 17:10:56

标签: java

我正在尝试从2个不同的ArrayList s格式化我的Marks输出。一个用于Homework,另一个用于Exams。我正在寻找的格式是这样的:

enter image description here

我的代码到目前为止

public void example() {
      System.out.println("");
      System.out.println("Subject: "+subjectString);
      System.out.print("Homework Mark: ");
      for(int i = 0; i <= arrayList1.size()-1; i++){
          System.out.printf("",arrayList1.get(i));
       }
    }
}

但我不能以任何方式让它发挥作用。

3 个答案:

答案 0 :(得分:0)

使用\t字符将插入标签。您可以使用它来适当地对齐列。

答案 1 :(得分:0)

试试这个

public void load() {

  System.out.println("");
  System.out.println("Subject: "+subjectString);
  System.out.print("Homework Mark: \t");

  for(int i = 0; i <= arrayList1.size()-1; i++){
      System.out.print(arrayList1.get(i) + "\t");
   }

   System.out.println("");
   System.out.print("Exam Mark: \t");
   for(int i = 0; i <= arrayList2.size()-1; i++){
      System.out.print(arrayList2.get(i) + "\t");
   }
   System.out.println("");
}

}

使用\t将添加标签以组织输出格式

答案 2 :(得分:0)

首先,我马上看到的几个问题是:

1)使用System.out.printf没有空字符串作为格式,意味着只打印一个空字符串。

2)您似乎希望将输出对齐到列中,而System.out.print只能使用System.out.printf,但-允许您按特定方式执行此操作(并且不依赖于制表符)宽度间距。

打印行标题时,请注意格式中的public static void load() { System.out.println(""); System.out.println("Subject: "+subjectString); System.out.printf("%-19s", "Homework Mark: "); for (int i = 0; i < arrayList1.size(); i++) { System.out.printf("%7d", arrayList1.get(i)); } System.out.println(""); System.out.printf("%-19s", "Exam Mark: "); for (int i = 0; i < arrayList2.size(); i++) { System.out.printf("%7d", arrayList2.get(i)); } System.out.println(""); } 减号,这会使它们与指定的间距保持对齐并匹配您想要的输出。

以下是您的代码的调整版本:

{{1}}