Scanner
Java 有一个 Scanner 类,用这个类可以接受键盘输入。
步骤:
- 导入该类所在的包(要使用一个类的话就必须先导入该类所在的包)
- 创建该类的对象
- 调用里面的功能
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后,发现出现如下问题:elasticsearch版本是springboot引入的6.8.6,没有变为7.4.2。 二、原因 在gulimall-search 的pom文件中&#…...
如何在Coze中实现Bot对工作流的精准调用(如何提高Coze工作流调用的准确性和成功率)
文章目录 📖 介绍 📖🏡 演示环境 🏡📒 工作流(workflow)📒📝 创建设计工作流📝 添加工作流📝 调用工作流⚓️ 相关链接 ⚓️📖 介绍 📖 在使用Coze平台创建智能Bot时,您可能会遇到一个常见问题:即便添加了正确的工作流,Bot却没有按照预期调用它们。…...
毫米波雷达阵列天线设计综合1(MATLAB仿真)
1 天线设计目标 毫米波雷达探测目标的距离、速度和角度,其中距离和角度和天线设计相关性较强。天线增益越高,则根据雷达方程可知探测距离越远;天线波束越窄,则角度分辨率越高;天线副瓣/旁瓣越低,则干扰越少…...
Freemarker
Freemarker简介 Freemarker是一个用Java语言编写的模板引擎,用于基于模板和数据生成文本输出。它可以用于生成HTML网页、XML文档、电子邮件、配置文件等任何格式的文本。Freemarker将业务逻辑与表示逻辑分离,使得开发人员可以专注于功能实现,…...
基于Zero-shot实现LLM信息抽取
基于Zero-shot方式实现LLM信息抽取 在当今这个信息爆炸的时代,从海量的文本数据中高效地抽取关键信息显得尤为重要。随着自然语言处理(NLP)技术的不断进步,信息抽取任务也迎来了新的突破。近年来,基于Zero-shot&#x…...
【python】tkinter GUI编程经典用法,Label标签组件应用实战详解
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...
国产操作系统上给麒麟虚拟机安装virtualbox增强工具 _ 统信 _ 麒麟 _ 中科方德
原文链接:国产操作系统上给麒麟虚拟机安装virtualbox增强工具 | 统信 | 麒麟 | 中科方德 Hello,大家好啊!昨天给大家带来了一篇在国产操作系统上给VirtualBox中的Win7虚拟机安装增强工具的文章,今天我们将继续深入,介绍…...
(delphi11最新学习资料) Object Pascal 学习笔记---第14章泛型第3节(特定类约束)
14.3.2 特定类约束 如果您的泛型类需要使用某个特定子集的类(特定层次结构),则可能需要根据给定基类指定约束。 例如,如果您声明: typeTCompClass<T: TComponent> class 则此泛型类的实例仅适用于组…...
【postgresql初级使用】视图上的触发器instead of,替代计划的rewrite,实现不一样的审计日志
instead of 触发器 专栏内容: postgresql使用入门基础手写数据库toadb并发编程 个人主页:我的主页 管理社区:开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 文章目录 inst…...
window.setInterval(func,interval)定时器
window.setInterval()是JavaScript中的方法,用于在指定的时间间隔重复执行某个函数或代码块。它接受两个参数,第一个参数是要执行的函数或代码块,第二个参数是时间间隔(以毫秒为单位)。 以下是使用window.setInterval…...
Einstein Summation 爱因斯坦求和 torch.einsum
Einstein Summation 爱因斯坦求和 torch.einsum flyfish 理解爱因斯坦求和的基本概念和语法,这对初学者来说可能有一定难度。对于不熟悉该表示法的用户来说,可能不如直接的矩阵乘法表达式易于理解。 整个思路是 向量的点积 -》矩阵乘法-》einsum 向…...
TCP攻击是怎么实现的,如何防御?
TCP(Transmission Control Protocol)是互联网协议族中的重要组成部分,用于在不可靠的网络上提供可靠的数据传输服务。然而,TCP协议的一些特性也使其成为攻击者的目标,尤其是DDoS(Distributed Denial of Ser…...
Chrome DevTools开发者调试工具
Chrome DevTools 是一个功能强大的网页开发工具,集成在谷歌浏览器中,帮助开发者调试和优化网页应用。以下是详细的功能说明和使用技巧: 1. 打开 DevTools 快捷键:按下 F12 或 CtrlShiftI(Windows/Linux)或…...
产品创新管理:从模仿到引领,中国企业的创新之路
一、引言 在全球化竞争日益激烈的今天,科技创新已成为推动国家经济增长和社会进步的关键动力。中国自改革开放四十年来,在科技创新领域取得了举世瞩目的成就,从跟踪模仿到自主研发,再到自主创新、开放创新和协同创新并举…...
Android 日志实时输出
开发中如果只是单纯的应用开发,Android studio基本上可以满足,但是如果应用和系统联调那就得用logcat实时输出了,我这里都是总结的实用经验,没那么多花里胡哨 Android 日志实时输出 1、输出 android log //分步,进入s…...
JavaEE初阶---多线程编程(一.线程与进程)
目录 🤣一.线程与进程的概念与联系: 进程的基本概念: 线程的基本概念: 进程和线程的区别与联系: 🙃代码执行实列: 1.通过继承Thread父类来实现多线程 2.通过实现Runnable接口来实现多线程…...
react+vite创建
要在本地初始化一个结合了React和Vite的项目,你可以遵循以下步骤: 1、安装Node.js: 确保你的机器上已安装了Node.js。如果未安装,请前往Node.js官网下载并安装。 2、使用终端或命令提示符: 打开你的终端(…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...
JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...
解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist
现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...
