欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Java基础--手把手教你如何从键盘录入信息

时间:2023-06-12

从键盘录入信息

文章目录

一、前奏

1、创建扫描仪对象2、导入包 二、从键盘录入信息

1、输入整数2、输入浮点数3、输入字符串 三、释放资源四、补充说明

1、输入与接收的数据类型不匹配2、输入带有空格的字符串 五、全部代码 一、前奏 1、创建扫描仪对象

Scanner有扫描仪的意思,sc是自己取的名字(有的人喜欢用input),new Scanner是创建一个Scanner对象,System.in代表电脑的键盘。

Scanner sc=new Scanner(System.in);

即,扫描电脑的键盘。

2、导入包

将第一步写完,我们在编译器里面看到,Scanner标红了,报错了!

❓ 为啥报错呢?

我们要使用Scanner,需要先找到它的路径!

我们需要导入一个包。

注意是在最上方导入包。

import java.util.Scanner;

import是导入的意思。

后面一串是文件存在的路径,这里指的是Scanner存在的路径。

❓ 那这个路径在哪儿呢?

我们可以在左侧找到。

“External Libraries”–>"<1.8(2)>"–>“rt.jar”–>“java”–>“util”–>“Scanner”。

具体演示:

(1)点击打开“External Libraries”。

(2)点击打开“<1.8(2)>”。

(3)找到“rt.jar”。

(4)点开“java”。

(5)找到“util”。

(6)往下找,可以看到“Scanner”。

❓那我不知路径咋办?我不知道Scanner在这儿啊?
(1)第一种方法

别急,我们先回到第一步,写完报错的时候。

将鼠标挪到红色Scanner上,会出现一个提示。

点击import class。

然后选择第一个Scanner(java.util)。

就会自动导入路径啦。


(2)第二种方法
还有一种方法,将光标放在Scanner上,然后直接按快捷键Alt+Enter。

然后再按回车(Enter)。

然后再按回车即可自动引入啦。

二、从键盘录入信息 1、输入整数

先从键盘接收一个整数—>sc.nextInt(),

然后创建一个整型变量b,将从键盘接收的整数保留起来—>int b。

具体写法如下:

int b=sc.nextInt();

然后我们输出变量b。

System.out.println("您输入的是:"+b); //前面输入的是字符串,后面是一个变量,中间的"加号+"是在做文字的拼接

接下来我们来运行这个代码。

右键run之后,我们会发现,控制台什么也没有输出,但是小红灯还是亮着的。

亮着说明这个程序还在跑。

为啥没有东西输出?

当然没有输出啦,现在正在执行这一行,等待我们输入数据呢。

那我们现在输入一个整数。

然后按下回车,执行下一行代码,输出相应的内容。

可以看到,红灯没有了,程序也结束啦。

现在写的这个代码,还是很影响观感的,没有提示语句,控制台空空白白的,咱也不知道什么时候输入啊。

我们可以在输入之前,加上一行代码,用于提示用户,该从键盘输入内容啦!

这样写就可以了:

System.out.println("请录入一个整数");

注意是写在这个位置哦,要在从键盘输入之前提示才妥当!

这样的话,输出的时候,就比较直观了。

我们运行代码:

这个提示语句,是不是很直观呢?

现在咱们输入10,然后回车。

2、输入浮点数

先从键盘接收一个浮点数—>sc.nextDouble(),

然后创建一个变量c,将从键盘接收的浮点数保留起来—>double c。

具体写法如下:

double c=sc.nextDouble();

然后和上面输入整数一样,咱们需要在键盘输入之前提醒一下用户,输入一个小数。

System.out.println("请录入一个小数");

最后输出即可。

System.out.println("您输入的是:"+c);

整体就是这样的:

然后运行。

我们从键盘敲一个小数,然后回车,可以看到最终结果。

3、输入字符串

先从键盘接收字符串—>sc.next(),

然后创建一个字符串变量s,将从键盘接收的字符串保留起来—>String s。

具体写法如下:

String s=sc.next(); //next后面什么都不放的意思就是,输入的是纯文字。

然后和上面输入整数一样,咱们需要在键盘输入之前提醒一下用户,输入字符串。

System.out.println("请输入其他内容");

最后输出即可。

System.out.println("您输入的是:"+s);

整体就是这样的:

然后运行。

我们从键盘敲一行字符串,然后回车,可以看到最终结果。

三、释放资源

当结束之后,我们需要释放一下资源。

在结尾写上这一行代码:

sc.close();

即关闭扫描仪。

注:不写这行代码,程序也是可以运行的。但是,关了更好啊,用完了就应该把还回去是吧。

四、补充说明 1、输入与接收的数据类型不匹配

(1)我们第一个要求输入的是一个整数,但是如果输入了一个小数,会怎么样呢?

输入,按回车之后,会发现报错。

出现了一个InputMismatchException的错误。

Input是“输入”的意思,Mismatch是“不匹配”的意思,Exception是“异常”的意思。

就是输入的数据,和要求输入的数据类型不匹配!

我们在控制台,可以看到报错的具体位置(问题在哪儿产生的)。

这里也顺便教大家如何查看报错的位置啦,学到就是赚到呀~

具体含义:在scannerDemo这个包,Test2里面,主方法main里的第15行。

总体来说,不是代码写错了,是输入的数据和接收的数据类型不匹配!

(2)我们第二个要求输入的是一个小数,但是如果输入了一个整数,会怎么样呢?

输入,按回车之后,会发现并没有报错。

但是输出值还是有小数点位的。

你输入整数之后,它会带一个.0处理,然后当成一个浮点数存起来。

我们知道,整数的数据是可以给浮点数数据类型的变量赋值的。

2、输入带有空格的字符串

我们输入字符串如果带有空格,会输出什么样的结果呢?

输入完成,按回车,会发现能录入的仅仅只有空格前面的内容!

这也算,next接收文字的一个弊端吧。

❓那么如何让空格之后的内容也被接收呢?

我们将next()改为nextLine()。【LIne有行的意思,就是一整行的意思】

String s=sc.nextLine(); //sc.next();

我们再次尝试。

好家伙!程序直接结束了?!

我还没有录入呢,就直接结束了?!

为哈会这样呢?

nextLine有个毛病,它会受到上面输出的影响,好像录入进来了,但其实啥也没有录进来。

如果想要用nextLine的话,前面就不要输出任何信息!!!不要有任何输出语句。

nextLine一般不推荐使用,一般使用next,只不过会有空格的问题而已。

❓ 如果就想用nextLine那咋办?

那我们就要在任何一个输出语句之前,先用nextLine就好啦。

如图(注意在红框框住的那一行之前不要有任何的输出语句):

我们再次执行。

此时正在等待我们录入。

我们输入带有空格的字符串,然后回车。

我们可以看到,完整的输出啦!

nextLine就是,有空格没有关系,直接把一整行都录入进来啦。

但如果前面有输出语句,会严重影响它的功能!!!所以不怎么用它。

五、全部代码

在此将全部代码放在这儿,供大家学习使用。

package scannerDemo;import java.util.Scanner;public class Test2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s1 = sc.nextLine(); System.out.println(s1); System.out.println("请录入一个整数"); int b=sc.nextInt(); System.out.println("您输入的是:"+b); //前面输入的是字符串,后面是一个变量,中间的"加号+"是在做文字的拼接 System.out.println("请录入一个小数"); double c=sc.nextDouble(); System.out.println("您输入的是:"+c); System.out.println("请输入其他内容"); String s=sc.nextLine(); //sc.next(); //next后面什么都不放的意思就是,输入的是纯文字。 System.out.println("您输入的是:"+s); sc.close(); }}

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。