文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java中的输入输出方式

2023-09-24 12:30

关注

文章目录


前言

学过C语言的都是知道,在C语言中,输入用scanf()函数,输出用printf。那么,Java中,输入输出的方式是怎样的呢?这篇文章,我们来详细讨论一下Java中的输入输出方式。

一、输出到控制台

在前面几篇文章中,我们会经常用到打印,其实,打印就是Java中的一种常用的输出方式。所以,我们先来看看输出

  1. 基本语法
System.out.println(msg); // 输出一个字符串, 带换行System.out.print(msg); // 输出一个字符串, 不带换行System.out.printf(format, msg); // 格式化输出

(1)println 输出的内容自带 \n, print 不带 \n。
(2)printf 的格式化输出方式和 C 语言的 printf 是基本一致的。

  1. 代码示例
System.out.println("hello world"); int x = 10; System.out.printf("x = %d\n", x)
  1. 格式化字符串
    当我们使用printf格式化输出的时候,会用到格式化字符串。下面这个表格,在我们需要用到的时候,可以方便查一下。
转换符类型举例
d十进制整数(“%d”,100)100
x十六进制整数(“%x”,100)64
o八进制整数(“%o”,100)144
f定点浮点数(“%f”,100f)100.000000
e指数浮点数(“%e”,100f)1.000000e+02
g通用浮点数(“%g”,100f)100.000
a十六进制浮点数(“%a”,100)0x1.9p6
s字符串(“%s”,100)100
c字符(“%c”,‘1’)1
b布尔值(“%b”,100)true
h散列码(“%h”,100)64
%百分号(“%.2f%%”,2/7f)0.29
  1. 错误输出
    这里补充一个错误输出(打印)格式:
System.err.println(msg);

示例代码:

public class Test {    public static void main(String[] args) {        System.out.println("正确输出");        System.err.println("错误输出");      //错误    }}

在这里插入图片描述
从运行结果,我们可以看到,错误输出被标记为红色了,而且我代码的书写顺序是先正确输出,后错误输出,但是执行结果是,错误输出先打印。这是因为存在一个优先级的问题,JVM内部会将错误的优先输出

二、从键盘输入

  1. 读入一个字符
    直接使用 System.in.read 可以读入一个字符. 但是需要搭配异常处理(关于异常处理后面会重点讲到)
import java.io.IOException; // 需要导入 IOException 包try {  System.out.print("Enter a Char:");  char i = (char) System.in.read();  System.out.println("your char is :"+i); } catch (IOException e) {  System.out.println("exception"); }

或者是:

import java.io.IOException;public class Test {    public static void main(String[] args) throws IOException {  //需要声明异常        System.out.println("请输入一个字符!");        char ch = (char) System.in.read();        System.out.println("这个字符是:" + ch);    }}

这种方式非常麻烦,还特别容易出错,所以强烈不推荐使用

  1. 使用 Scanner 读取字符串/整数/浮点数
import java.util.Scanner; // 需要导入 util 包Scanner sc = new Scanner(System.in); System.out.println("请输入你的姓名:"); String name = sc.nextLine(); System.out.println("请输入你的年龄:"); int age = sc.nextInt(); System.out.println("请输入你的工资:"); float salary = sc.nextFloat(); System.out.println("你的信息如下:"); System.out.println("姓名: "+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary); sc.close(); // 注意, 要记得调用关闭方法// 执行结果请输入你的姓名:张三请输入你的年龄:18 请输入你的工资:1000 你的信息如下:姓名: 张三年龄:18 工资:1000.0
  1. 使用Scanner循环读取N个数字
Scanner sc = new Scanner(System.in); double sum = 0.0; int num = 0; while (sc.hasNextDouble()) {  double tmp = sc.nextDouble();  sum += tmp;  num++; }System.out.println("sum = " + sum); System.out.println("avg = " + sum / num); sc.close(); // 执行结果10 40.0 50.5 ^Dsum = 150.5 avg = 30.1

当循环输入多个数据的时候, 使用 ctrl + z(JDK1.7之前) 来结束输入 。现在统一使用ctrl+d来结束输入

  1. 猜数字游戏
    游戏规则:系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 “低了”, 如果输入的数字比该随机数大, 提示 “高了” , 如果输入的数字和随机数相等, 则提示 “猜对了”。
import java.util.Random;import java.util.Scanner;public class Test {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        Random random = new Random();        int toGuess = random.nextInt(100);         //随机生成一个1~100以内的任意整数        while (true){            System.out.println("请输入要输入的数字!");            int num = sc.nextInt();            if(num < toGuess){                System.out.println("小了");            }else if(num > toGuess){                System.out.println("大了");            }else {                System.out.println("恭喜你猜对了!");                break;            }        }        sc.close();   //最后,记得关闭输入    }}

来源地址:https://blog.csdn.net/ZCYaiCLX3344/article/details/128992966

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯