Java的格式化功能提供了多种占位符,可以把各种数据类型“格式化”成指定的字符串:
占位符 | 说明 |
---|---|
%d | 格式化输出整数 |
%x | 格式化输出十六进制整数 |
%f | 格式化输出浮点数 |
%e | 格式化输出科学计数法表示的浮点数 |
%s | 格式化字符串 |
注意,由于%表示占位符,因此,连续两个%%表示一个%字符本身。
占位符格式:
%[index$][标识]*[最小宽度][.精度]转换符
double d1 = 12900000;
System.out.println(d1); // 1.29E7
double d = 3.1415926;
System.out.printf("%.2f\n", d); // 显示两位小数3.14
System.out.printf("%.4f\n", d); // 显示4位小数3.1416
int nn = 12345000;
System.out.printf("n=%d, hex=%08x", nn, nn); // 把一个整数格式化成十六进制,并用0补足8位:
// 请帮小明同学设计一个程序,输入上次考试成绩(int)和本次考试成绩(int),然后输出成绩提高的百分比,保留两位小数位(例如,21.75%)。
Scanner scanner = new Scanner(System.in); // 创建Scanner对象
System.out.println("\n你上次成绩为: "); // 打印提示
int score1 = scanner.nextInt(); // 读取一行输入并获取字符串
System.out.println("你本次成绩为: "); // 打印提示
int score2 = scanner.nextInt(); // 读取一行输入并获取整数
double improvescore = ((double)score2-score1)/score2*100;
System.out.printf("成绩提升了:%.2f%%",improvescore);
小结
Java提供的输出包括:System.out.println()
/ print()
/ printf()
,其中printf()
可以格式化输出;
Java提供Scanner对象来方便输入,读取对应的类型可以使用:scanner.nextLine()
/ nextInt()
/ nextDouble()
/ ...