返回顶部

Java基础教程-输入和输出分享

[复制链接]
星星和月亮Lv.2 显示全部楼层 发表于 2021-10-26 11:44:34 |阅读模式 打印 上一主题 下一主题
 

(内容来源于公开网络,若涉及侵权联系尽快删除!)

 一、输出

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

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

  //输出
[Java] 纯文本查看 复制代码
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还提供了格式化输出的功能。为什么要格式化输出?因为计算机表示的数据不一定适合人来阅读:

  //格式化输出
[Java] 纯文本查看 复制代码
public class Main {
    public static void main(String[] args) {
        double d = 12900000;
        System.out.println(d); // 1.29E7
    }
}

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

  //格式化输出

  Java的格式化功能提供了多种占位符,可以把各种数据类型“格式化”成指定的字符串:
[Java] 纯文本查看 复制代码
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
    }
}

  占位符                       说明

  %d                      格式化输出整数

  %x                  格式化输出十六进制整数

  %f                     格式化输出浮点数

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

  %s                               格式化字符串

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

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

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

  详细的格式化参数请参考JDK文档java.util.Formatter

  输入

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

  我们先看一个从控制台读取一个字符串和一个整数的例子:
[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 %d\n", name, age); // 格式化输出
    }
}

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

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

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

  要测试输入,我们不能在线运行它,因为输入必须从命令行读取,因此,需要走编译、执行的流程:

[Java] 纯文本查看 复制代码
$ javac Main.java

  这个程序编译时如果有警告,可以暂时忽略它,在后面学习IO的时候再详细解释。编译成功后,执行:
[Java] 纯文本查看 复制代码
$ java Main
Input your name: Bob
Input your age: 12
Hi, Bob, you are 12

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

(免责声明:内容来源于公开网络,若涉及侵权联系尽快删除!)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
月亮代表星星的心
回复

使用道具 举报

精彩评论1

棉花糖不甜Lv.2 显示全部楼层 发表于 2021-10-27 14:33:41
学习了,对于新手来说很有用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

达内教育:成立于2002年。致力于面向IT互联网行业,培养软件开发工程师、测试工程师、系统管理员、智能硬件工程师、UI设计师、网络营销、会计等职场人才 达内使命:缔造年轻人的中国梦、缔造达内员工的中国梦 达内愿景:做管理一流的教育公司
  • 商务合作

  • 微信公众号

  • Powered by Discuz! X3.4 | Copyright © 2002-2021, 达内教育 Tedu.cn
  • 京ICP备08000853号-56 |网站地图 | 京公网安备 11010802029508号