Java로 테이블 인쇄

Rupam Yadav 2023년10월12일
  1. printf()/println()을 사용하여 Java에서 목록을 테이블로 인쇄하기
  2. System.out.format()을 사용하여 Java에서 목록을 테이블로 인쇄합니다
Java로 테이블 인쇄

Java에서 테이블 구조의 정보를 인쇄하려면 java.io.PrintStream 클래스의 printf() 또는 format() 메소드를 사용할 수 있습니다.

printf()/println()을 사용하여 Java에서 목록을 테이블로 인쇄하기

printf(format, arguments) 메서드는 문자열 형식을 제공합니다. 형식 패턴을 사용하여 형식 지정 규칙을 지정할 수 있으며 규칙은 %로 시작합니다.

여기에 id, name, agegrade와 같은 기본 속성을 가진 POJO 클래스 Student과 학생들의List를 작성하고 그 정보를 테이블 형식으로 출력하는TestExample 클래스를 준비하고 있습니다.

형식 지정 문자열은 이 시퀀스의 플래그, 너비, 정밀도 및 변환 문자를 포함하는 리터럴 및 형식 지정자로 구성됩니다. 예를 들어 %[flags][width][.precision]conversion-charcater. 대괄호에 제공된 지정자는 선택 사항입니다. printf는 내부적으로 java.util.Formatter를 사용하여 형식 문자열을 구문 분석하고 출력합니다.

conversion-character는 문자열 형식을 결정합니다. 여기서 우리는 s, d, c라는 일반적인 두 가지를 사용했습니다. s는 문자열 형식을 지정하고 d는 십진 정수 형식을 지정하고 c의 결과는 유니코드 문자입니다. 따라서 이 코드에서는 너비와 변환 문자의 조합을 사용하여 주어진 학생의 데이터를 테이블로 형식화했습니다.

메서드 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())도 형식 지정자와 getter 메서드를 가집니다. 속성의 값을 가져오기 위해 학생 클래스.

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

System.out.format()을 사용하여 Java에서 목록을 테이블로 인쇄합니다

java.io 패키지printprintln을 대체하는 데 사용되는 두 가지 메서드가 있는 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 Yadav
Rupam Yadav avatar Rupam Yadav avatar

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

관련 문장 - Java Print