Java输入与输出详解

news2024/11/17 19:40:37

Java输入和输出

  • 前言
  • 一、Java打印Hello World
  • 二、输出到控制台
    • 基本语法
    • 代码示例
    • 格式化字符串
  • 三、从键盘输入
    • 读入一个字符
      • 正确写法
    • 使用 Scanner 读取字符串/整数/浮点数
    • 使用 Scanner 循环读取 N 个数字


前言

推荐一个网站给想要了解或者学习人工智能知识的读者,这个网站里内容讲解通俗易懂且风趣幽默,对我帮助很大。我想与大家分享这个宝藏网站,请点击下方链接查看。
https://www.captainbed.cn/f1

Java输入和输出涉及从各种来源(如键盘、文件等)读取数据以及将数据发送到各种目标(如屏幕、文件等)。Java提供了多种流类(如InputStream和OutputStream)来处理这些操作,允许开发者以灵活和高效的方式处理数据输入输出。


一、Java打印Hello World

新生婴儿会以自己独特的方式向这个崭新的世界打招呼,Java刚出来后,也算是一个新事物,

在这里插入图片描述

那Java是否也应该向这个美好的世界来声问候呢?

我们来看下Java是如何来实现问候的。

public static void main(String[] args) {
    System.out.println("Hello World");
}

在这里插入图片描述

二、输出到控制台

基本语法

System.out.println(msg); // 输出一个字符串, 带换行 
System.out.print(msg);// 输出一个字符串, 不带换行 
em.out.printf(format, msg); // 格式化输出 
  • println 输出的内容自带 \n, print 不带 \n
  • printf 的格式化输出方式和 C 语言的 printf 是基本一致的.

代码示例

public static void main(String[] args) {
    System.out.println("hello world");
    int x = 10;
    System.out.printf("x = %d\n", x);
}

在这里插入图片描述

格式化字符串

转换符类型举例
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%

三、从键盘输入

读入一个字符

直接使用 System.in.read 可以读入一个字符. 但是需要搭配异常处理

public static void main(String[] args) {
    System.out.print("Enter a Char:");
    char i = (char) System.in.read();
    System.out.println("your char is :"+i);
}

在这里插入图片描述

正确写法

import java.io.IOException;// 需要导入 IOException 包
public static void main(String[] args) {
    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");
    }
}

在这里插入图片描述

使用 Scanner 读取字符串/整数/浮点数

import java.util.Scanner; // 需要导入 util 包
public static void main(String[] args) {
    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(); // 注意, 要记得调用关闭方法
}

在这里插入图片描述
这段代码是一个简单的Java程序。它使用了Scanner类来从用户输入中获取数据。

首先,我们导入了java.util.Scanner类,这是一个可以从标准输入中读取数据的工具类。

然后,在main方法中,我们创建了一个Scanner对象sc来读取用户的输入。通过调用nextLine()方法,我们可以获取用户输入的姓名并将其保存在name变量中。接下来,通过调用nextInt()方法,我们获取用户输入的年龄并保存在age变量中。最后,通过调用nextFloat()方法,我们获取用户输入的工资并保存在salary变量中。

然后,我们输出了用户输入的信息。通过使用"+"操作符,我们将字符串和变量连接起来输出。

最后,我们调用了sc.close()方法来关闭Scanner对象,这是一个好的习惯,以释放资源并避免内存泄漏。

这样,程序就会等待用户输入,并将输入的姓名、年龄和工资打印出来。

使用 Scanner 循环读取 N 个数字

import java.util.Scanner; // 需要导入 util 包
public static void main(String[] args) {
    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();
}

这段代码是一个简单的Java程序,它使用了Scanner类从用户输入中获取一系列的浮点数,并计算它们的总和和平均值。

首先,我们导入了java.util.Scanner类,这是一个用于从标准输入中读取数据的工具类。

然后,在main方法中,我们创建了一个Scanner对象sc来读取用户的输入。接下来,我们初始化了两个变量sumnum,用于保存浮点数的总和和数量。

然后,我们使用一个while循环来判断用户是否还输入了一个浮点数。通过调用sc.hasNextDouble()方法,我们可以判断下一个输入是否是一个浮点数。只要用户输入的还是浮点数,循环就会继续执行。

在循环体内,我们调用sc.nextDouble()方法来获取用户输入的浮点数,并将其保存在临时变量tmp中。然后我们将tmp的值累加到sum变量中,同时将num加1以记录输入的数量。

当用户输入结束后,也就是不再输入浮点数时,循环将会终止。此时,我们输出sum变量的值作为浮点数的总和,并通过sum / num计算出浮点数的平均值。

最后,我们调用sc.close()方法来关闭Scanner对象,这是一个好的习惯,以释放资源并避免内存泄漏。

这样,程序会一直等待用户输入浮点数,并计算它们的总和和平均值,直到没有更多的输入为止。

ps:当循环输入多个数据的时候, 使用 ctrl + z 来结束输入 (Windows 上使用 ctrl + z, Linux / Mac 上使用 ctrl +d)
在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1687892.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

嵌入式智能硬件茶杯垫的设计与实现方案

iCupBox简介 这是一款智能杯垫产品,基于GTD时间管理理念设计,目的是提醒人们专心工作和及时喝水休息,提高工作效率。 https://gitee.com/jiangtao008/iCupBox 开原许可协议:MIT 项目分为客户端APP和杯垫固件系统: 客户端APP,使用QML开发,集成GTD时间管理方法,与杯垫固…

QQ技术导航源码附带交易系统

网站功能 QQ登录 友联自助交换 友情链接交易功能 多功能搜索 ico小图标本地化 网站图片本地化 蜘蛛日志 文章评论 网站评论 自助链接匿名提交站点,添加友链访问网站自动审核通过 VIP 会员等级 VIP 付费升级 单个文章或者站点付费快审 多背景图片可自定义背景图片…

Web Server项目实战2-Linux上的五种IO模型

上一节内容的补充:I/O多路复用是同步的,只有调用某些API才是异步的 Unix/Linux上的五种IO模型 a.阻塞 blocking 调用者调用了某个函数,等待这个函数返回,期间什么也不做,不停地去检查这个函数有没有返回&#xff0c…

【算法】二分算法——寻找峰值

题解:寻找峰值(二分算法) 目录 1.题目2.暴力求解3.二分算法4.总结 1.题目 题目链接:LINK 2.暴力求解 暴力求解的思路很简单,这个数组的形状无非就三种: 一直上升下降(这里包含先下降后上升)先升后降 总结一下规律&#xff1…

详解CSS(二)

目录 1.背景属性 1.1背景颜色 1.2背景图片 1.3背景平铺 1.4背景位置 1.5背景尺寸 2.圆角矩形 3.元素的显示模式 3.1行内元素/内联元素(Inline element) 3.2块级元素(Block-level element) 3.3行内块元素(In…

一键自动回复,提升客服效率,解锁销售新高度

在快速迭代的跨境电商时代,效率与顾客体验是决定商家能否脱颖而出的关键要素。作为一款专为跨境电商设计的全能管理工具,现我们已全面升级,与俄罗斯头部电商平台Ozon深度整合,推出自动回复功能,旨在帮助卖家实现客服管…

1.Nacos 入门与实战(Spring Cloud)

1.Nacos 入门与实战 1.什么是 Nacos?1.1 Nacos 功能1.1.1 配置中心1.1.2 注册中心 1.2 Nacos 优点 2.Nacos 基本使用2.1 Nacos 部署安装2.1.1 部署方式2.1.2 安装并启动2.2.3 配置数据源2.2.4 开启控制台授权登录(可选) 2.2 配置中心使用2.2.1 创建配置…

使用API有效率地管理Dynadot域名,进行域名邮箱的默认邮件转发设置

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…

Docker-Android安卓模拟器本地部署并实现远程开发测试

文章目录 1. 虚拟化环境检查2. Android 模拟器部署3. Ubuntu安装Cpolar4. 配置公网地址5. 远程访问小结 6. 固定Cpolar公网地址7. 固定地址访问 本文主要介绍如何在Ubuntu系统使用Docker部署docker-android安卓模拟器,并结合cpolar内网穿透工具实现公网远程访问本地…

504 Gateway Time-out

问题描述 做Excel导入的功能,由于Excel的数据比较多,需要做处理然后入库,数据量大概200万,所以毫无悬念的导入Excel接口调用超过了一分钟,并且报错:504 gateway timeout。 解决方案 nginx超时限制。路径…

51单片机入门:AT24C02

AT24C02简介 AT24C02是一个2K bit的EEPROM存储器,使用I2C通信方式(其中02对应2K bit,类似的,AT24C04/08对应4K bit/8K bit的存储器)。 其原理图如下: 对应的引脚及其功能: 引脚名称功能A0/A1…

ThingsBoard物联网网关在暖通自控中的应用

ThingsBoard是用于数据收集、处理、可视化和设备管理的开源物联网平台。 场景 智能办公场景中的物联网需求包括能源管理、安全监控、环境监测、空间优化和设备自动化,以提升效率、节约成本并增强员工的舒适度和安全性。 通过监测建筑内部的温度、湿度、光照等数据&a…

WordPress插件Disable WP REST API,可根据是否登录来禁用REST API

前面跟大家分享了代码版禁用WordPress REST API的方法(详见『WordPress4.7以上版本如何禁用JSON REST API?』),不过有些站长不太敢折腾自己的网站代码,那么建议试试这款Disable WP REST API,它可以&#xf…

linux命令arp的使用

arp arp 命令用于显示和修改 IP 到 MAC 转换表 补充说明 arp 命令 是 Address Resolution Protocol,地址解析协议,是通过解析网络层地址来找寻数据链路层地址的一个网络协议包中极其重要的网络传输协议。而该命令可以显示和修改 arp 协议解析表中的缓…

为什么要用虚拟时钟Virtual clock?

通常RTL设计要求对芯片/module的输入信号进行reg_in打拍处理,对芯片/module的输出也要求做reg_out打拍处理,这是良好的代码习惯,为时序收敛留下足够裕量,也避免顶层例化综合后的子模块时出现模块间IO时序不满足的情况。综合阶段可…

编写一个llvm编译器插件,完成在store汇编指令前对内存合法性的check。

dds(iceoryx、fastdds等)中间件采用了共享内存,如果app内存越界将共享内存踩踏坏了,将会形成灾难。本插件可以检测到app是否在写共享内存,如果是,我们可以让app assert。从而提高dds的稳定性 插件效果: 插件源码&…

2024 年 5 种领先的小语言模型:Phi 3、Llama 3 等

2024 年 5 种领先的小语言模型:Phi 3、Llama 3 等 近年来,GPT-3 和 BERT 等大型语言模型的发展改变了人工智能的格局,它们以其强大的功能和广泛的应用而闻名。 然而,除了这些巨头之外,一种新的 AI 工具类别也正在掀起…

Windows环境下训练OpenCV分类器

文章目录 1、Windows下安装OpenCV及依赖库2、获取opencv_createsamples.exe和opencv_traincascade.exe3、准备样本文件正负样本描述文件生成5、训练分类器5.1、使用opencv_createsamples.exe生成positives.vec文件5.2、使用opencv_traincascade.exe训练分类器 1、Windows下安装…

浅谈AI大模型的数据特点和应用问题

【摘要】AI大模型的训练、推理及应用落地都需要大量的数据,其数据具有参数和数据量大、质量要求高、行业垂直属性强、资源消耗大等特点,由此带来的个人隐私泄露、数据中毒、数据篡改等数据安全风险已成为业界必须应对的重要议题。目前大模型的规模化应用…

怎么用二维码看excel表格?生成文件二维码的制作技巧

Excel表格怎么放到二维码中,让其他人通过扫码查看数据呢?现在文件放入二维码中展示在很多的场景中都有应用,比如通知、数据、作品、报告等类型的内容都可以通过扫码的方式在手机上展现,那么如何将文件生成二维码呢? 文…