java如何输入数据
发布日期:2021-06-20 05:36:59 浏览次数:4 分类:技术文章

本文共 2580 字,大约阅读时间需要 8 分钟。

Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这种情况我们就束手无策,请你看以下三种解决方法吧: 

以下将列出几种方法:

方法一:从控制台接收一个字符,然后将其打印出来

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

虽然此方式实现了从键盘获取输入的字符,但是System.out.read()只能针对一个字符的获取,同时,获取进来的变量的类型只能是char,当我们输入一个数字,希望得到的也是一个整型变量的时候,我们还得修改其中的变量类型,这样就显得比较麻烦。

 

方法二:从控制台接收一个字符串,然后将其打印出来。 在这个题目中,我们需要用到BufferedReader类和InputStreamReader类

import java.io.*;public static void main(String [] args) throws IOException{            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));            String str = null;            System.out.println("Enter your value:");            str = br.readLine();            System.out.println("your value is :"+str); }

这样我们就能获取我们输入的字符串。

 

方法三:这种方法我认为是最简单,最强大的,就是用Scanner类

import java.util.Scanner;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); }

这段代码已经表明,Scanner类不管是对于字符串还是整型数据或者float类型的变量,只需做一点小小的改变,就能够实现功能!无疑他是最强大的!

 

但是,在使用第三种输入方法的时候有一个需要注意的地方,就是nextLine()函数,在io包中有一个和他功能一样的函数我next()函数,他们的功能一样,但是在实现上有什么差别呢,请看下面代码:

public static void main(String [] args) {          Scanner sc = new Scanner(System.in);          System.out.println("请输入你的年龄:");          int age = sc.nextInt();          System.out.println("请输入你的姓名:");          String name = sc.nextLine();          System.out.println("请输入你的工资:");          float salary = sc.nextFloat();          System.out.println("你的信息如下:");          System.out.println("姓名:"+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary); }

这段代码和上边第三种实现输入方法给出的例子代 码区别在于,这段代码先执行nextInt()再执行nextLine(),而第三种方法的例子是先执行nextLine(),再执行 nextInt(),当你在运行着两段代码的时候你会发现第三种方法的例子可以实现正常的输入,而这段代码却在输入年龄,敲击enter键后,跳过了输 入姓名,直接到了输入工资这里,(可以自己运行代码看看)这是为什么呢?其实,在执行nextInit()函数之后,敲击了enter回车键,回车符会被 nextLine()函数吸收,实际上是执行了nextLine()函数吸收了输入的回车符(并不是没有执行nextLine函数),前面讲到和 nextLine()功能一样的函数next(),他们的区别就在于:next()函数不会接收回车符和tab,或者空格键等,所以在使用 nextLine()函数的时候,要注意敲击的回车符有个被其吸收,导致程序出现BUG!!!

最后小小的总结一下next()和nextLine()的区别:

在java中,next()方法是不接收空格的,在接收到有效数据前,所有的空格或者tab键等输入被忽略,若有有效数据,则遇到这些键退出。nextLine()可以接收空格或者tab键,其输入应该以enter键结束。

转载地址:https://blog.csdn.net/h2453532874/article/details/84618312 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java常量,变量,静态变量的理解
下一篇:理解GC日志 -- GC常用命令与GC结果解读

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月28日 22时08分55秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

go微服务框架go-micro深度学习(五) stream 调用过程详解 ... 2019-04-29
恒大再控股轮毂电机公司 整合业务速度或成下个挑战 ... 2019-04-29
短视频app软件开发时,这些不能被人代做的工作 ... 2019-04-29
四大维度全景揭秘阿里巴巴智能对话开发平台 2019-04-29
华为轮值董事长胡厚崑回复特朗普:随时准备为美国建设真正的5G网络 ... 2019-04-29
肖特携“世界品牌”肖特赛兰®亮相2019AWE家电博览会,探索未来厨房的全新烹饪乐趣 ... 2019-04-29
RHEL 7.6 安装 Oracle 18c RAC 2019-04-29
PostgreSQL备份工具:pg_rman编译安装 2019-04-29
spring 注解试事物源码解析 2019-04-29
保险科技当下的“全景图”与未来的“望远镜” ... 2019-04-29
小米 OPPO 屏幕指纹识别技术都升级了,今年就能用到 ... 2019-04-29
专访百胜软件CTO:30万家门店,从MySQL到阿里云POLARDB云原生数据库 ... 2019-04-29
不要争了!技术选择没那么重要 2019-04-29
Spark初窥 2019-04-29
python设计模式(二):建造者模式 2019-04-29
数据江湖唯快不破 云数据库RDS存储能力进化解析 ... 2019-04-29
全方位 Logtail 状态监控 2019-04-29
IEEE 计算机学会 2019 年 Edward J.McCluskey 技术成就奖揭晓,周志华教授成唯一获奖者 ... 2019-04-29
硅谷女孩火了,更该让他们开始学编程 2019-04-29
Python使用函数计算与API网关产品组合之踩坑成果-praffa轻型框架 ... 2019-04-29