Java打印案例

wen java案例 2

本文目录导读:

Java打印案例

  1. 基础打印(入门)
  2. 格式化打印(进阶)
  3. 打印图案(趣味案例)
  4. ASCII艺术(打印文字/图案)
  5. 调试与日志打印(实际开发)
  6. 彩色打印(控制台颜色)
  7. 综合实战:模拟登录进度条

在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));

如果你有特定的打印需求(比如打印表格、打印特殊图形),随时告诉我,我可以帮你写对应的代码!

抱歉,评论功能暂时关闭!