当前位置: 首页 > news >正文

Scanner

Java 有一个 Scanner 类,用这个类可以接受键盘输入。

步骤:

  1. 导入该类所在的包(要使用一个类的话就必须先导入该类所在的包)
  2. 创建该类的对象
  3. 调用里面的功能

Scanner 有两套系统。

第一套系统:

nextInt();
nextDouble();
next();
// 等等...

第二套系统:

nextLine();  // 接收一个字符串

程序示例:

import java.util.Scanner;public class Input {public static void main(String[] args) {Scanner sc = new Scanner(System.in); // 只有 sc 是变量名,只有 sc 可以改变,其他的都不允许改变。System.out.print("请输入一个用户的名字: ");String name = sc.next(); // 接收一个字符串System.out.print("请输入用户的年龄: ");int age = sc.nextInt(); // 接收一个整数System.out.print("请输入用户的薪水: ");double salary = sc.nextDouble(); // 接收一个double数据System.out.println("用户信息如下:");System.out.println("姓名: " + name);System.out.println("年龄: " + age);System.out.println("薪水: " + salary);}
}

执行结果:

请输入一个用户的名字: 小章
请输入用户的年龄: 20
请输入用户的薪水: 20000
用户信息如下:
姓名: 小章
年龄: 20
薪水: 20000.0

第一套系统,遇到空白停止接收,剩余输入存在于缓冲中,等待下一次读入。

程序示例:

import java.util.Scanner;
public class Test {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.print("enter some words: ");String s = sc.next();System.out.println(s);}
}

执行结果:

enter some words: xiao cheng
xiao

程序示例:

import java.util.Scanner;public class test {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入第一个整数:");int num1 = sc.nextInt();System.out.println(num1);System.out.println("请输入第二个整数:");int num2 = sc.nextInt();System.out.println(num2);}
}

执行结果:

请输入第一个整数:
123 456
123
请输入第二个整数:
456

练习:

import java.util.Scanner;public class Input {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int a, b;System.out.print("输入一个整数:");a = sc.nextInt();System.out.print("输入另一个整数:");b = sc.nextInt();System.out.println("两个整数的和为 " + (a + b));}
}

执行结果:

输入一个整数:198 
输入另一个整数:876
两个整数的和为 1074

第二套系统,可以接收一整行输入,直到遇到回车才停止接收数据。

程序示例:

import java.util.Scanner;public class test {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入第一个字符串:");String line1 = sc.nextLine();System.out.println(line1);System.out.println("请输入第二个字符串:");String line2 = sc.nextLine();System.out.println(line2);}
}

执行结果:

请输入第一个字符串:
hello     world
hello     world
请输入第二个字符串:
早    上     好
早    上     好

两套系统混着用的一个弊端:

import java.util.Scanner;public class test2 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入一个数字:");int num1 = sc.nextInt();System.out.println(num1);System.out.println("请输入一个字符串:");String line1 = sc.nextLine();System.out.println(line1);System.out.println("结束");}
}

执行结果 1:

请输入一个数字:
123
123
请输入一个字符串:结束

line1 读取到了一个字符串,但是不会将字符串存储进去,所以 line1 是空的,因此此处的 System.out.println(line1); 相当于 System.out.println("");,也相当于 System.out.println();。因此仅仅只打印了一个换行。

执行结果 2:

请输入一个数字:
123     456
123
请输入一个字符串:456
结束

程序示例:

import java.util.Scanner;public class test {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入第一个字符串:");String line1 = sc.nextLine();System.out.print(line1);  // 是 print 而不是 printlnSystem.out.println("请输入第二个字符串:");String line2 = sc.nextLine();System.out.println(line2);}
}

执行结果:

请输入第一个字符串:
hello   world
hello   world请输入第二个字符串:你    好你    好

由此可见,nextLine() 不会把换行符存储在字符串中。nextLine() 可以将换行符从缓冲区中读取走且不放到字符串中,这样换行符既不在缓冲区,也不在换行符中,相当于丢弃了。

相关文章:

Scanner

Java 有一个 Scanner 类,用这个类可以接受键盘输入。 步骤: 导入该类所在的包(要使用一个类的话就必须先导入该类所在的包)创建该类的对象调用里面的功能 Scanner 有两套系统。 第一套系统: nextInt(); nextDoubl…...

vue3实现录音与录像上传功能

录音 <script setup lang"ts"> import { onMounted, reactive, ref } from vue; import useInject from /utils/useInject;const props: any defineProps<{params?: any; }>();const recObj: any reactive({blob: null, });const { $global, $fn } …...

PHP小方法

一、随机生成姓名 二、随机获取身份证 三、随机获取手机号 四、随机获取省 五、通过身份证获取生日和性别 六、通过身份证获取年龄 七、获取访问IP 八、获取访问URL地址 九、陆续增加 //一、随机生成姓名 function generateName(){$arrXing getXingList();$numbXing …...

gulimall-search P125 springboot整合elasticsearch版本冲突

一、问题 spring-boot.version 2.2.4.RELEASE,在gulimall-search pom.xml中添加elasticsearch.version 7.4.2后&#xff0c;发现出现如下问题&#xff1a;elasticsearch版本是springboot引入的6.8.6&#xff0c;没有变为7.4.2。 二、原因 在gulimall-search 的pom文件中&#…...

如何在Coze中实现Bot对工作流的精准调用(如何提高Coze工作流调用的准确性和成功率)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 工作流(workflow)📒📝 创建设计工作流📝 添加工作流📝 调用工作流⚓️ 相关链接 ⚓️📖 介绍 📖 在使用Coze平台创建智能Bot时,您可能会遇到一个常见问题:即便添加了正确的工作流,Bot却没有按照预期调用它们。…...

毫米波雷达阵列天线设计综合1(MATLAB仿真)

1 天线设计目标 毫米波雷达探测目标的距离、速度和角度&#xff0c;其中距离和角度和天线设计相关性较强。天线增益越高&#xff0c;则根据雷达方程可知探测距离越远&#xff1b;天线波束越窄&#xff0c;则角度分辨率越高&#xff1b;天线副瓣/旁瓣越低&#xff0c;则干扰越少…...

Freemarker

Freemarker简介 Freemarker是一个用Java语言编写的模板引擎&#xff0c;用于基于模板和数据生成文本输出。它可以用于生成HTML网页、XML文档、电子邮件、配置文件等任何格式的文本。Freemarker将业务逻辑与表示逻辑分离&#xff0c;使得开发人员可以专注于功能实现&#xff0c…...

基于Zero-shot实现LLM信息抽取

基于Zero-shot方式实现LLM信息抽取 在当今这个信息爆炸的时代&#xff0c;从海量的文本数据中高效地抽取关键信息显得尤为重要。随着自然语言处理&#xff08;NLP&#xff09;技术的不断进步&#xff0c;信息抽取任务也迎来了新的突破。近年来&#xff0c;基于Zero-shot&#x…...

【python】tkinter GUI编程经典用法,Label标签组件应用实战详解

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…...

国产操作系统上给麒麟虚拟机安装virtualbox增强工具 _ 统信 _ 麒麟 _ 中科方德

原文链接&#xff1a;国产操作系统上给麒麟虚拟机安装virtualbox增强工具 | 统信 | 麒麟 | 中科方德 Hello&#xff0c;大家好啊&#xff01;昨天给大家带来了一篇在国产操作系统上给VirtualBox中的Win7虚拟机安装增强工具的文章&#xff0c;今天我们将继续深入&#xff0c;介绍…...

(delphi11最新学习资料) Object Pascal 学习笔记---第14章泛型第3节(特定类约束)

14.3.2 特定类约束 ​ 如果您的泛型类需要使用某个特定子集的类&#xff08;特定层次结构&#xff09;&#xff0c;则可能需要根据给定基类指定约束。 ​ 例如&#xff0c;如果您声明&#xff1a; typeTCompClass<T: TComponent> class​ 则此泛型类的实例仅适用于组…...

【postgresql初级使用】视图上的触发器instead of,替代计划的rewrite,实现不一样的审计日志

instead of 触发器 ​专栏内容&#xff1a; postgresql使用入门基础手写数据库toadb并发编程 个人主页&#xff1a;我的主页 管理社区&#xff1a;开源数据库 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 文章目录 inst…...

window.setInterval(func,interval)定时器

window.setInterval()是JavaScript中的方法&#xff0c;用于在指定的时间间隔重复执行某个函数或代码块。它接受两个参数&#xff0c;第一个参数是要执行的函数或代码块&#xff0c;第二个参数是时间间隔&#xff08;以毫秒为单位&#xff09;。 以下是使用window.setInterval…...

Einstein Summation 爱因斯坦求和 torch.einsum

Einstein Summation 爱因斯坦求和 torch.einsum flyfish 理解爱因斯坦求和的基本概念和语法&#xff0c;这对初学者来说可能有一定难度。对于不熟悉该表示法的用户来说&#xff0c;可能不如直接的矩阵乘法表达式易于理解。 整个思路是 向量的点积 -》矩阵乘法-》einsum 向…...

TCP攻击是怎么实现的,如何防御?

TCP&#xff08;Transmission Control Protocol&#xff09;是互联网协议族中的重要组成部分&#xff0c;用于在不可靠的网络上提供可靠的数据传输服务。然而&#xff0c;TCP协议的一些特性也使其成为攻击者的目标&#xff0c;尤其是DDoS&#xff08;Distributed Denial of Ser…...

Chrome DevTools开发者调试工具

Chrome DevTools 是一个功能强大的网页开发工具&#xff0c;集成在谷歌浏览器中&#xff0c;帮助开发者调试和优化网页应用。以下是详细的功能说明和使用技巧&#xff1a; 1. 打开 DevTools 快捷键&#xff1a;按下 F12 或 CtrlShiftI&#xff08;Windows/Linux&#xff09;或…...

产品创新管理:从模仿到引领,中国企业的创新之路

一、引言 在全球化竞争日益激烈的今天&#xff0c;科技创新已成为推动国家经济增长和社会进步的关键动力。中国自改革开放四十年来&#xff0c;在科技创新领域取得了举世瞩目的成就&#xff0c;从跟踪模仿到自主研发&#xff0c;再到自主创新、开放创新和协同创新并举&#xf…...

Android 日志实时输出

开发中如果只是单纯的应用开发&#xff0c;Android studio基本上可以满足&#xff0c;但是如果应用和系统联调那就得用logcat实时输出了&#xff0c;我这里都是总结的实用经验&#xff0c;没那么多花里胡哨 Android 日志实时输出 1、输出 android log //分步&#xff0c;进入s…...

JavaEE初阶---多线程编程(一.线程与进程)

目录 &#x1f923;一.线程与进程的概念与联系&#xff1a; 进程的基本概念&#xff1a; 线程的基本概念&#xff1a; 进程和线程的区别与联系&#xff1a; &#x1f643;代码执行实列&#xff1a; 1.通过继承Thread父类来实现多线程 2.通过实现Runnable接口来实现多线程…...

react+vite创建

要在本地初始化一个结合了React和Vite的项目&#xff0c;你可以遵循以下步骤&#xff1a; 1、安装Node.js&#xff1a; 确保你的机器上已安装了Node.js。如果未安装&#xff0c;请前往Node.js官网下载并安装。 2、使用终端或命令提示符&#xff1a; 打开你的终端&#xff08;…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...