java scanner nextlin_Scanner的使用

Scanner主要功能是扫描键盘录入的数据

1.判断

2.获取下一个标记

1.1 首先引入Object类

1.1.1-Object 概述:

Object类是Java中其他所有类的祖先,没有Object类Java面向对象无从谈起。作为其他所有类的基类,Object具有哪些属性和行为,是Java语言设计背后的思维体现。

java.lang包在使用的时候无需显示导入,编译时由编译器自动导入。

Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类。

Object类是Java中唯一没有父类的类。

其他所有的类,包括标准容器类,比如数组,都继承了Object类中的方法.

1.1.2-Object 构造方法:

Object():无参构造

Java中规定:在类定义过程中,对于未定义构造函数的类,默认会有一个Object基类无参数的构造函数。

当然,并不是所有的类都是通过此种方式去构建,也自然的,并不是所有的类构造函数都是public。

1.1.3-Object 成员方法:

public int hashCode()返回一个整形数值,表示该对象的哈希码值

public final Class getClass()返回一个对象的运行时类

public boolean equals(Object obj)指示某个其他对象是否与此对象“相等”

protected

void finalize() 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法

protectedObject clone()创建并返回此对象的一个副本

public String toString()返回该对象的字符串表示

注意1:toString()方法相信大家都经常用到,即使没有显式调用,但当我们使用System.out.println(obj)时,其内部也是通过toString()来实现的。

注意2:==和equals()的区别?

==:既可以比较基本数据类型也可以比较引用数据类型

基本类型:比较的是值是否相同

引用类型:比较的是地址值是否相同

equals():只能比较引用数据类型

默认情况下,比较的是地址值是否相同。

重写,比较两个内容是否相等。

1.1.4-Object 注意事项:

因为Object类时所有类的基类,所以任何类中都存在这些方法,但是只要用到这些方法时基本都需要重写,因为在object类中的这些方法并不一定适合我们的需求环境。所以这里就不再写代码实现了。

2.1 其次最终引入Scanner的应用

2.1.1- Scanner 概述:

键盘录入类。在JDK1.5版本出现。

Java.util.Scanner是Java5的新特征,主要功能是键盘录入数据。

2.1.2- Scanner 构造方法:

Scanner(InputStreamsource)  键盘录入

例如:Scanner Scanner = newScanner(System.in);

2.1.3- Scanner 成员方法:

hasNext()  判断扫描器中当前扫描位置后是否还存在下一段

hasNextLine()如果在此扫描器的输入中存在另一行,则返回 true。

next() 查找并返回来自此扫描器的下一个完整标记。

nextLine() 此扫描器执行当前行,并返回跳过的输入信息。

以下是对以上四类的详解:

intnextInt(int radix)   //将输入信息的下一个标记扫描为一个 int。

String nextLine()    // 此扫描器执行当前行,并返回跳过的输入信息。

long nextLong()     // 将输入信息的下一个标记扫描为一个 long。

short nextShort()  //  将输入信息的下一个标记扫描为一个short。

常用的成员方法代码如下所示:

977b7f5b1ca6

将键盘录入的信息全部打印输出到控制台代码如下所示:

977b7f5b1ca6

2.1.4- Scanner 五个注意事项:

1、使用nextInt()时输入的内容必须为数字,如果输入了字符串,程序结束并且会报异常.

效果如下图所示:

977b7f5b1ca6

注:需要仔细审题,再进行其测试.

(1)使用nextInt()时输入的内容必须为数字,如果输入了字符串,程序结束并且会报异常。

案例:

int  i = scanner.nextInt();

System.out.println(i);

2、nextInt()和next()判断读取结束的标识是空白符;比如空格、回车、tab键,而nextLine()的结束标识是回车也就是"\r".

效果如下图所示:

-1(第一种是当(即遇到那些字符就会结束掉):

977b7f5b1ca6

第二种是(如果不想让它遇到空格结束的解决方案是:nextLine())):

977b7f5b1ca6

(2)nextInt()和next()判断读取结束的标识是空白符;比如空格、回车、tab,而nextLine()的结束标识是回车也就是“\r”。

案例:

int i = scanner.nextInt();//遇到空格、回车、tab键就会结束

System.out.println(i);

//如果不想让他遇到空格结束的解决方案是:nextLin()

String s = scanner.nextLine();

System.out.println(s);

3、next()和nextInt()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键,

Tab键或Enter键等结束符,next()方法会自动将其去掉,而nextLine()不管是否读到有效字符

遇到结束符都会结束.

效果如下图所示:

-1(第一种:nextInt()):

977b7f5b1ca6

-2(第二种:next()):

977b7f5b1ca6

-3(第三种:nextLine()):

977b7f5b1ca6

(3)next()和nextInt()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,而nextLine()不管是否读到有效字符,遇到结束符回车都会结束。

代码:

String i = scanner.next();//遇到有效字符才会结束

System.out.println(i);

String s = scanner.nextLine();//空格

System.out.println(s);

4、next()和nextInt()读到有效字符后不会将结束符擦除,而nextLine()是会将结束符擦除的.

效果如下图所示:

-1(第一种:next()):注:以下效果图中只显示了next()的案例,将nextInt()缩写了.

977b7f5b1ca6

-2(第二种:nextLine()):

977b7f5b1ca6

(4) next()和nextInt()读到有效字符后不会将结束符擦除,而nextLine()是会将结束符擦除的。

案例:

String next = scanner.next();//中间遇到空格,会自动将后面的字符擦除掉,只输出空格前的字符

System.out.println(next);

String nextLine = scanner.nextLine();//会将结束符擦除

System.out.println(nextLine);

String nextLine2 = scanner.nextLine();

System.out.println(nextLine2);

5、同一个Scanner对象,不能先录入int,再录入String值,会出异常.

//解决方案一、a:使用两个Scanner对象分别接收即可.

977b7f5b1ca6

//解决方案二、/b:将第一个值,使用String类型,后转换为int即可.

977b7f5b1ca6

(5) 同一个Scanner对象,不能先录入int,再录入String值,会出异常。

代码:

int i = scanner.nextInt();

Scanner scanner2 = new Scanner(System.in);

String s = scanner2.nextLine();

System.out.println(i + ":" + s);

//将String类型的数值,转换化为in类t型

String num1 = scanner.nextLine();

String num2 = scanner.nextLine();

int num3 = Integer.valueOf(num1);

System.out.println(num3 + ":" + num2);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值