Java之输入和输出

  输出

  在前面的代码中,我们总是用System.out.println()来向屏幕输出一些内容:

  println是print line的缩写,表示输出并换行。因此,如果输出后不想换行,可以用print()

1
2
3
4
5
6
7
8
9
public class Main {
    public static void main(String[] args) {
        System.out.print("A,");
        System.out.print("B,");
        System.out.print("C.");
        System.out.println();
        System.out.println("END");
    }
}

   输出

1
2
A,B,C.
END

   格式化输出

  Java还提供了格式化输出的功能。为什么要格式化输出?因为计算机表示的数据不一定适合人来阅读:

1
2
3
4
5
6
public class Main {
    public static void main(String[] args) {
        double d = 12900000;
        System.out.println(d); // 1.29E7
    }
}

   输出

1
1.29E7

   如果要把数据显示成我们期望的格式,就需要使用格式化输出的功能。格式化输出使用System.out.printf(),通过使用占位符%?,printf()可以把后面的参数格式化成指定格式:

1
2
3
4
5
6
7
public class Main {
    public static void main(String[] args) {
        double d = 3.1415926;
        System.out.printf("%.2f\n", d); // 显示两位小数3.14
        System.out.printf("%.4f\n", d); // 显示4位小数3.1416
    }
}

   输出

1
2
3.14
3.1416

   %.2f代表输出小数点后面两位\n表示输出换行,后面的d是需要格式化的变量

  如果运行报错

1
2
3
4
5
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
    The method printf(String, Object[]) in the type PrintStream is not applicable for the arguments (String, double)
    The method printf(String, Object[]) in the type PrintStream is not applicable for the arguments (String, double)
 
    at Main.main(Main.java:4)

   Eclipse中 JAVA默认的兼容版本为1.4, 改为1.5及以上版本就行。 项目 》属性》Java complier》complier compliance lever:1.5

 

 

   Java的格式化功能提供了多种占位符,可以把各种数据类型格式化成指定字符串:

  

占位符说明
%d 格式化输出整数
%x 格式化输出十六进制整数
%f 格式化输出浮点数
%e 格式化输出科学计数法表示的浮点数
%s 格式化字符串

 

  注意,由于%表示占位符,因此,连续两个%%表示一个%字符本身。

  占位符本身还可以有更详细的格式化参数。下面的例子把一个整数格式化成十六进制,并用0补足8位:

1
2
3
4
5
6
public class Main {
    public static void main(String[] args) {
        int n = 12345000;
        System.out.printf("n=%d, hex=%08x", n, n); // 注意,两个%占位符必须传入两个数
    }
}

   输出

1
n=12345000, hex=00bc5ea8

   

  

  

posted @   minseo  阅读(1497)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示