迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

在 Java 中打印表格

作者:迹忆客 最近更新:2023/11/13 浏览次数:

要在 Java 中以表格结构打印任何信息,我们可以使用 java.io.PrintStream 类的 printf()format() 方法。


在 Java 中使用 printf()/println() 将列表打印为表格

printf(format, arguments) 方法提供字符串格式。我们可以使用格式模式指定格式规则,规则以%开头。

这里我们有一个 POJO 类 Student 具有基本属性,如 idnameagegrade 以及 TestExample 类,我们在其中创建学生的 List 并将该信息打印在表格中格式。

格式化字符串由文字和格式说明符组成,其中包括此序列中的标志、宽度、精度和转换字符。例如%[flags][width][.precision]conversion-charcater。括号中给出的说明符是可选的。printf 内部使用 java.util.Formatter 来解析格式字符串并输出它。

conversion-character 决定了字符串的格式。这里我们使用了两个常见的,sdcs 格式化字符串,而 d 格式化十进制整数,而 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()) 也有格式说明符和 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
-----------------------------------------------------------------------------

在 Java 中使用 System.out.format() 将列表打印为表格

java.io 包PrintStream 类提供了两种用于替换 printprintln 的方法。这些方法是 format()printf() 并且是等效的。在 format(String format, Object... args) 中,格式指定要使用的格式,args,即使用此格式打印的参数列表。

在这里,我们创建了一个 String 数据类型的二维数组;此时未指定 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

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 Java 中延迟几秒钟的时间

发布时间:2023/12/17 浏览次数:217 分类:Java

本篇文章主要介绍如何在 Java 中制造程序延迟。本教程介绍了如何在 Java 中制造程序延时,并列举了一些示例代码来了解它。

如何在 Java 中把 Hashmap 转换为 JSON 对象

发布时间:2023/12/17 浏览次数:187 分类:Java

它描述了允许我们将哈希图转换为简单的 JSON 对象的方法。本文介绍了在 Java 中把 Hashmap 转换为 JSON 对象的方法。我们将看到关于创建一个 hashmap,然后将其转换为 JSON 对象的详细例子。

如何在 Java 中按值排序 Map

发布时间:2023/12/17 浏览次数:171 分类:Java

本文介绍了如何在 Java 中按值对 Map 进行排序。本教程介绍了如何在 Java 中按值对 Map 进行排序,并列出了一些示例代码来理解它。

如何在 Java 中打印 HashMap

发布时间:2023/12/17 浏览次数:192 分类:Java

本帖介绍了如何在 Java 中打印 HashMap。本教程介绍了如何在 Java 中打印 HashMap 元素,还列举了一些示例代码来理解这个主题。

在 Java 中更新 Hashmap 的值

发布时间:2023/12/17 浏览次数:146 分类:Java

本文介绍了如何在 Java 中更新 HashMap 中的一个值。本文介绍了如何在 Java 中使用 HashMap 类中包含的两个方法-put() 和 replace() 更新 HashMap 中的值。

Java 中的 hashmap 和 map 之间的区别

发布时间:2023/12/17 浏览次数:79 分类:Java

本文介绍了 Java 中的 hashmap 和 map 接口之间的区别。本教程介绍了 Java 中 Map 和 HashMap 之间的主要区别。在 Java 中,Map 是用于以键值对存储数据的接口,

在 Java 中获取用户主目录

发布时间:2023/12/17 浏览次数:218 分类:Java

这篇文章向你展示了如何在 Java 中获取用户主目录。本教程介绍了如何在 Java 中获取用户主目录,并列出了一些示例代码以指导你完成该主题。

Java 中 size 和 length 的区别

发布时间:2023/12/17 浏览次数:179 分类:Java

这篇文章教你如何知道 Java 中大小和长度之间的区别。本教程介绍了 Java 中大小和长度之间的区别。我们还列出了一些示例代码以帮助你理解该主题。

Java 中的互斥锁

发布时间:2023/12/17 浏览次数:111 分类:Java

了解有关 Java 中互斥锁的一切,在计算机科学领域,互斥或互斥被称为并发控制的属性。每台计算机都使用称为线程的最小程序指令序列。有一次,计算机在一个线程上工作。为了更好地理解,

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便