《从C/C++到Java入门指南》- 11.输入和输出

输入和输出

输出

  • 换行输出:System.out.println()
  • 不换行输出:System.out.print()

格式化输出

如果要将计算机表示的数据转换成人希望阅读的格式,就需要进行格式化输出。

这一点和C语言中的很像:

public class Hello {
    public static void main(String[] args) {
        double d = 3.1415926;
        System.out.printf("%.2f\n", d);
        System.out.printf("%.3f\n", d);
    }
}

看到printf,熟悉吗?

Java中提供了很多格式化的占位符:

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

%表示占位符,如果想表示%本身,就需要用%%也就是两个%连用。

Java 中一些特殊的写法,比如将整数格式化成十六进制:

public class Hello {
    public static void main(String[] args) {
        int n = 12345000;
        System.out.printf("n=%d, hex=%08x\n", n, n);	// 用 0 补足到 8 位
        System.out.printf("n=%d, hex=%010x\n", n, n);	// 用 0 补足到 10 位
        System.out.printf("n=%d, hex=%x", n, n);		// 不用 0 补足
    }
}

详细的格式化参数见JDK文档: java.util.Formatter

输入

和输出相比,Java的输入要相对复杂。

import java.util.Scanner;
public class Hello {
    public static void main(String[] args) {
        var scanner = new Scanner(System.in);
        System.out.print("请输入姓名:");
        String name = scanner.nextLine();
        System.out.print("请输入年龄:");
        int age = scanner.nextInt();
        System.out.println("姓名:" + name + " " + "年龄:" + age);
    }
}
  • 首先,导入类 Scanner
  • var scanner = new Scanner(System.in)实例化一个输入类,传入标准输入流System.in
  • scanner.nextLine()不出意外表示一整行
  • scanner.nextInt()表示读入一个整数

练习

请帮小明同学设计一个程序,输入上次考试成绩(int)和本次考试成绩(int),然后输出成绩提高的百分比,保留两位小数位(例如,21.75%)。

答案

import java.util.Scanner;
public class Main {
	static int last;
	static int now;
    public static void main(String[] args) {
        var scanner = new Scanner(System.in);
        System.out.print("请输入上一次的考试成绩: ");
        last = scanner.nextInt();
        
        System.out.print("请输入这一次的考试成绩: ");
        now = scanner.nextInt();
        System.out.printf("%%%.2f", (float) now / (float) last * 100);
    }
}

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值