Java でテーブルを出力する
Java で表形式の構造で情報を出力するには、クラス java.io.PrintStream の printf() または format() メソッドを使用できます。
Java で printf()/println() を使用してリストをテーブルとして出力する
printf(format, arguments) メソッドは文字列フォーマットを提供します。フォーマットパターンを使用してフォーマットのルールを指定できます。ルールは%で始まります。
ここには、id、name、age、grade などの基本属性を持つ POJO クラス Student と、生徒の List を作成してその情報を表形式で出力する TestExample クラスを用意しています。
書式設定文字列は、リテラルと書式指定子で構成され、フラグ、幅、精度、変換文字がこの順序で含まれます。たとえば、%[flags][width][.precision]conversion-charcater です。括弧内の指定子はオプションです。printf は内部で java.util.Formatter を使用してフォーマット文字列を解析し、出力します。
conversion-character は、文字列のフォーマット方法を決定します。ここでは、一般的な 2つ、s、d、および c を使用しました。s は文字列をフォーマットし、d は 10 進整数をフォーマットし、c の結果は Unicode 文字です。したがって、このコードでは、幅と変換文字の組み合わせを使用して、特定の学生のデータをテーブルにフォーマットしました。
メソッド printf("%10s %20s %5s %5s", "STUDENT ID", "NAME", "AGE", "GRADE") には、渡された引数をフォーマットするためのフォーマット指定子があります。したがって、たとえば、%10s は、指定された文字数で文字列をフォーマットし、それを右揃えにします。println() メソッドは、結果を出力した後、カーソルを次の行に移動します。
メソッド format("%10s %20s %5d %5c",student.getId(), student.getName(), student.getAge(), student.getGrade()) にも、のフォーマット指定子とゲッターメソッドがあります。属性の値を取得するための学生クラス。
import java.util.ArrayList;
import java.util.List;
public class TableExample {
public static void main(String args[]) {
List<Student> students = new ArrayList<>();
students.add(new Student("S101", "John", 8, '4'));
students.add(new Student("S102", "Leo", 10, '6'));
students.add(new Student("S103", "Mary", 5, '2'));
students.add(new Student("S104", "Lisa", 6, '3'));
System.out.println(
"-----------------------------------------------------------------------------");
System.out.printf("%10s %20s %5s %5s", "STUDENT ID", "NAME", "AGE", "GRADE");
System.out.println();
System.out.println(
"-----------------------------------------------------------------------------");
for (Student student : students) {
System.out.format("%10s %20s %5d %5c", student.getId(), student.getName(), student.getAge(),
student.getGrade());
System.out.println();
}
System.out.println(
"-----------------------------------------------------------------------------");
}
}
class Student {
private String id;
private String name;
private int age;
private Character grade;
Student(String id, String name, int age, Character grade) {
this.id = id;
this.name = name;
this.age = age;
this.grade = grade;
}
public String getId() {
return id;
}
public Character getGrade() {
return grade;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
出力:
-----------------------------------------------------------------------------
STUDENT ID NAME AGE GRADE
-----------------------------------------------------------------------------
S101 John 8 4
S102 Leo 10 6
S103 Mary 5 2
S104 Lisa 6 3
-----------------------------------------------------------------------------
Java で System.out.format() を使用してリストをテーブルとして出力する
java.io パッケージは、print と println を置き換えるために使用される 2つのメソッドを PrintStream クラスに提供します。これらのメソッドは format() と printf() であり、同等です。format(String format, Object... args) では、フォーマットは使用されるフォーマットを指定します。args は、このフォーマットを使用して出力される引数のリストです。
ここでは、String データ型の 2D 配列を作成します。この時点では、4つの行と列は指定されていません。これは単に、4つの配列の配列を宣言していることを意味します。次に、各行を String オブジェクトで初期化します。
配列の多次元配列である table 内の各行に対して for ループを実行します。各行について、System.out.format() を使用して行をフォーマットし、各行のフォーマットパターンを指定します。
ここで、%15s は 15 幅の右寄せ文字列を意味し、%n はプラットフォーム固有の行区切り文字です。
public class Test1 {
public static void main(String args[]) {
String[][] table = new String[4][];
table[0] = new String[] {"Apple", "Banana", "Papaya"};
table[1] = new String[] {"Chicken", "Mutton", "Fish"};
table[2] = new String[] {"Carrots", "Beans", "Cabbage"};
table[3] = new String[] {"Candy", "Cake", "Bread"};
for (String[] row : table) {
System.out.format("%15s %15s %15s %n", row);
}
}
}
出力:
Apple Banana Papaya
Chicken Mutton Fish
Carrots Beans Cabbage
Candy Cake Bread
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn