本文目录导读:

在Java中打印输出是最基础的操作,下面从基础语法到高级进阶,给你梳理几个典型的打印案例,涵盖控制台输出、格式化打印、以及打印图案等场景。
基础打印(入门)
换行与不换行
public class BasicPrint {
public static void main(String[] args) {
// 不换行打印
System.out.print("Hello ");
System.out.print("World");
System.out.println("!"); // 换行
// 直接换行
System.out.println("第一行");
System.out.println("第二行");
// 转义字符
System.out.println("包含\t制表符");
System.out.println("包含\n换行");
System.out.println("包含\"引号\"");
// 在中间打印
System.out.println("换行前\r回车覆盖开头的部分");
}
}
格式化打印(进阶)
System.out.printf() 格式化输出
public class FormatPrint {
public static void main(String[] args) {
String name = "张三";
int age = 25;
double score = 95.5678;
// %s 字符串、%d 整数、%.2f 保留两位小数的浮点数
System.out.printf("姓名:%s,年龄:%d岁,成绩:%.2f分%n", name, age, score);
// 左对齐(默认右对齐)
System.out.printf("左对齐:%-10s|%n", "Java");
System.out.printf("右对齐:%10s|%n", "Java");
// 数字补0
System.out.printf("补零:%05d%n", 42); // 输出 00042
// 百分比
System.out.printf("百分比:%.1f%%%n", 98.6); // 输出 98.6%
// 十六进制
System.out.printf("十六进制:%x%n", 255); // 输出 ff
}
}
String.format() 格式化字符串
public class StringFormat {
public static void main(String[] args) {
// 返回格式化后的字符串(不直接输出)
String formatted = String.format("%s学了%d天Java", "小李", 30);
System.out.println(formatted);
// 复杂表格对齐
System.out.println("======================");
System.out.printf("%-10s %-8s %s%n", "产品", "数量", "单价");
System.out.println("----------------------");
System.out.printf("%-10s %-8d %.2f%n", "笔记本", 10, 5999.99);
System.out.printf("%-10s %-8d %.2f%n", "鼠标", 50, 129.5);
}
}
打印图案(趣味案例)
直角三角形
public class Triangle {
public static void main(String[] args) {
int rows = 5;
// 打印直角三角形
for (int i = 1; i <= rows; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("* ");
}
System.out.println();
}
System.out.println("------------");
// 打印倒三角形
for (int i = rows; i >= 1; i--) {
for (int j = 1; j <= i; j++) {
System.out.print("* ");
}
System.out.println();
}
}
}
金字塔和菱形
public class Diamond {
public static void main(String[] args) {
int n = 5; // 层数
// 正金字塔
for (int i = 0; i < n; i++) {
// 空格
for (int j = 0; j < n - i - 1; j++) {
System.out.print(" ");
}
// 星号
for (int k = 0; k < 2 * i + 1; k++) {
System.out.print("*");
}
System.out.println();
}
System.out.println("------------");
// 菱形(包含上下两部分)
for (int i = 0; i < n; i++) {
for (int j = 0; j < n - i - 1; j++) {
System.out.print(" ");
}
for (int k = 0; k < 2 * i + 1; k++) {
System.out.print("*");
}
System.out.println();
}
for (int i = n - 2; i >= 0; i--) {
for (int j = 0; j < n - i - 1; j++) {
System.out.print(" ");
}
for (int k = 0; k < 2 * i + 1; k++) {
System.out.print("*");
}
System.out.println();
}
}
}
九九乘法表
public class MultiplicationTable {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.printf("%d×%d=%2d ", j, i, i * j);
}
System.out.println();
}
}
}
输出效果:
1×1= 1
1×2= 2 2×2= 4
1×3= 3 2×3= 6 3×3= 9
...
ASCII艺术(打印文字/图案)
实例:打印爱心
public class Heart {
public static void main(String[] args) {
int n = 4; // 控制大小
// 上半部分
for (int i = n / 2; i <= n; i += 2) {
for (int j = 1; j < n - i; j += 2) {
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
for (int j = 1; j <= n - i; j++) {
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
// 下半部分(倒三角形)
for (int i = n; i >= 1; i--) {
for (int j = i; j < n; j++) {
System.out.print(" ");
}
for (int j = 1; j <= (i * 2) - 1; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
调试与日志打印(实际开发)
使用 System.err 打印错误信息
public class ErrorPrint {
public static void main(String[] args) {
// 在控制台用红色输出错误信息
System.err.println("警告:输入的数字不合法!");
// 异步记录堆栈
try {
int result = 10 / 0;
} catch (ArithmeticException e) {
// 打印完整的异常堆栈(调试时用)
e.printStackTrace();
}
}
}
打印数组和对象(工具方法)
import java.util.Arrays;
public class ArrayPrint {
public static void main(String[] args) {
// 使用Arrays.toString()打印数组
int[] arr = {1, 2, 3, 4, 5};
System.out.println(Arrays.toString(arr)); // [1, 2, 3, 4, 5]
// 使用Arrays.deepToString()打印二维数组
int[][] matrix = {{1, 2}, {3, 4}};
System.out.println(Arrays.deepToString(matrix)); // [[1, 2], [3, 4]]
// 打印对象
Person p = new Person("Alice", 30);
System.out.println(p); // 调用重写的toString()方法
}
}
class Person {
private String name;
private int age;
Person(String name, int age) {
this.name = name;
this.age = age;
}
// 重写toString(),让打印更友好
@Override
public String toString() {
return "Person{name='" + name + "', age=" + age + "}";
}
}
彩色打印(控制台颜色)
public class ColorPrint {
// ANSI 颜色代码
public static final String RESET = "\u001B[0m";
public static final String RED = "\u001B[31m";
public static final String GREEN = "\u001B[32m";
public static final String YELLOW = "\u001B[33m";
public static final String BLUE = "\u001B[34m";
public static final String PURPLE = "\u001B[35m";
public static void main(String[] args) {
System.out.println(RED + "这是红色" + RESET);
System.out.println(GREEN + "这是绿色" + RESET);
System.out.println(YELLOW + "这是黄色" + RESET);
System.out.println(BLUE + "这是蓝色" + RESET);
System.out.println(PURPLE + "这是紫色" + RESET);
}
}
注意: 彩色打印在IDEA或VS Code的终端中支持,但在Windows CMD中可能显示乱码。
综合实战:模拟登录进度条
public class LoadingBar {
public static void main(String[] args) throws InterruptedException {
System.out.println("系统登录中...");
for (int i = 0; i <= 100; i += 10) {
System.out.print("\r加载进度: " + i + "% "); // \r回到行首
// 画进度条
for (int j = 0; j < i / 5; j++) {
System.out.print("█");
}
for (int j = 0; j < 20 - i / 5; j++) {
System.out.print("░");
}
Thread.sleep(500); // 延迟0.5秒
}
System.out.println("\n登录成功!");
}
}
| 场景 | 使用方法 | 代码示例 |
|---|---|---|
| 简单输出 | System.out.println() |
System.out.println("Hello"); |
| 不换行 | System.out.print() |
System.out.print("Hi"); |
| 格式化 | System.out.printf() |
System.out.printf("%.2f", 3.14159); |
| 错误输出 | System.err.println() |
System.err.println("Error!"); |
| 数组打印 | Arrays.toString() |
System.out.println(Arrays.toString(arr)); |
如果你有特定的打印需求(比如打印表格、打印特殊图形),随时告诉我,我可以帮你写对应的代码!
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播