格式化输出

资深软件开发工程师,业余马拉松选手。

输出

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

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

// 输出
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");
    }
}

注意观察上述代码的执行效果。

格式化输出

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

// 格式化输出
public class Main {
    public static void main(String[] args) {
        double d = 12900000;
        System.out.println(d); // 1.29E7
    }
}

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

// 格式化输出
public class Main {
    public static void main(String[] args) {
        double d = 3.1415926;
        System.out.printf("%.2fn", d); // 显示两位小数3.14
        System.out.printf("%.4fn", d); // 显示4位小数3.1416
    }
}

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

占位符说明

%d

格式化输出整数

%x

格式化输出十六进制整数

%f

格式化输出浮点数

%e

格式化输出科学计数法表示的浮点数

%s

格式化字符串

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

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

// 格式化输出
public class Main {
    public static void main(String[] args) {
        int n = 12345000;
        System.out.printf("n=%d, hex=x", n, n); // 注意,两个%占位符必须传入两个数
    }
}

详细的格式化参数请参考JDK文档

输入

和输出相比,Java的输入就要复杂得多。

我们先看一个从控制台读取一个字符串和一个整数的例子:

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in); // 创建Scanner对象
        System.out.print("Input your name: "); // 打印提示
        String name = scanner.nextLine(); // 读取一行输入并获取字符串
        System.out.print("Input your age: "); // 打印提示
        int age = scanner.nextInt(); // 读取一行输入并获取整数
        System.out.printf("Hi, %s, you are %dn", name, age); // 格式化输出
    }
}

首先格式化输出,我们通过语句导入java.util.,是导入某个类的语句,必须放到Java源代码的开头,后面我们在Java的中会详细讲解如何使用。

然后,创建对象并传入.in。.out代表标准输出流,而.in代表标准输入流。直接使用.in读取用户输入虽然是可以的java printf输出格式,但需要更复杂的代码,而通过就可以简化后续的代码。

有了对象后,要读取用户输入的字符串,使用.()格式化输出,要读取用户输入的整数,使用.()。会自动转换数据类型,因此不必手动转换。

要测试输入,必须从命令行读取用户输入,因此,需要走编译、执行的流程:

$ javac Main.java

这个程序编译时如果有警告,可以暂时忽略它,在后面学习IO的时候再详细解释。编译成功后,执行:

$ java Main
Input your name: Bob ── 输入 Bob
Input your age: 12   ── 输入 12
Hi, Bob, you are 12  ── 输出

根据提示分别输入一个字符串和整数后java printf输出格式,我们得到了格式化的输出。

练习

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

下载练习

小结

Java提供的输出包括:.out.() / print() / (),其中()可以格式化输出;

Java提供对象来方便输入java printf输出格式,读取对应的类型可以使用:.() / () / () / …

公告:
1. 本站所有资源来源于用户上传和网络,如有侵权请联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长处理!
6. 本站不售卖代码,资源标价只是站长收集整理的辛苦费!如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
7. 站长QQ号码 2205675299

资源库 - 资源分享下载网 » 格式化输出

常见问题FAQ

关于资源售价和售后服务的说明?
本站所有资源的标价均为本站收集资源的辛苦费,不代表资源本身的价值。软件是高智慧高价值的商品,不可能是白菜价。本站资源标价只是赞助费用,收取的赞助费仅用来维持本站的日常运营!毕竟收集整理资料需要投入云计算资源和站长大量的精力。
代码有没有售后服务和技术支持?
由于代码的运行具有不可预见性,本站不保证代码完整可运行,不提供技术支持和售后服务。 本站原创代码都是站长自己开发的,可以有偿提供技术支持服务。 网站里标明【亲测】的代码都是站长亲测过的,其他的代码由于精力有限,没有一一测试,不能保证代码就一定能够使用,更没有技术支持服务,下载前请自行斟酌。
有没有搭建服务?
由于搭建服务比较费时费力,所以本站除了原创代码外均不提供搭建服务。本站分享代码纯属兴趣爱好,不以盈利为目的,请勿咨询有没有搭建服务,谢谢理解。
链接地址失效了怎么办?
请带上资源链接地址联系客服,工作时间内我们看到后将第一时间回复。
关于解压密码
本站资源一般都没有加密,如果发现需要解压密码的,那么就输入 hao.35dc.com 试试。

发表评论

资源库,由老程序员细心甄别、精心筛选,只为提供优质的源码资源

关于我们 联系我们