Java用户交互的目的是实现程序与人的交互;一般通过Scanner来获取用户的输入;java.util.Scanner 是Java5的新特征。

基本语法:

  Scanner s=new Scanner(System.in);

我们可以通过Scanner类的next()与nextLine()方法获取用户输入的数据,而在获取之前可以通过hasNext()与hasNextLine判断是否有输入的数据。

代码1:

Scanner scanner =new Scanner(System.in);         //创建一个扫描器对象,用于接收键盘数据

System.out.println("请输入数据:");

if(scanner.hasNext()){            //判断用户有没有输入字符串

  String str=scanner.next();                               //使用next()方法接收

  System.out.println(str);          //运行程序时,如果我们输入Hello World!  结果会是Hello

}

scanner.close();               //属于IO流的类, 如果不关闭会一直占用资源,所以用完要关闭

代码2:

Scanner scanner =new Scanner(System.in);    //创建一个扫描器对象,用于接收键盘数据

System.out.println("请输入数据:");

if(Scanner.hasNextLine()){            //判断用户有没有输入字符串

  String str=scanner.nextLine();        //使用nextLine()方法接收

  Syste.out.println(str);                                         ////运行程序时,如果我们输入Hello World!  结果会是Hello World!

}

scanner.close();                //属于IO流的类, 如果不关闭会一直占用资源,所以用完要关闭

由代码的输出结果就可知道next()与nextLine()的输出结果是有很大区别的

总结:

next():

1、一定要读取到有效字符后才可以结束输入。即程序运行时一定要输入有效字符才行

2、对输入有效字符之前遇到的空白,会自动忽略

3、当检测到有效字符时,才会把其后面输入的空白作为分离符或者结束符。

4、next()不能得到带有空格的字符串,即输入hello world 得到的只有hello。

nextLine():

1、以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符,所以能输出hello world!

2、可以获得空白

结论:next()方法比较局限,nextLine()用途比较广一些。

Scanner拓展:

上面的是判断用户是否输入字符串,那小数和整数呢?

小数:hasNextFloat()                nextFloat()

整数:hasNextInt()                   nextInt()

问键盘输入几个数,且这些数的和是:

代码:

Scanner scanner=new Scanner(System,in);

int m=0;

double sum=0;

while(scanner.hasNextDouble()){

double  x=scanner.nextDouble();

m=m+1;                                              //多少个

sum+=x;             //它们的和

}

scanner.close();

用户交互Scanner的用法的更多相关文章

  1. 1.用户交互Scanner

    Java流程控制 一:用户交互Scanner Scanner对象: 之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入.java.uti ...

  2. 用户交互Scanner

    用户交互Scanner java.util.Scanner Scanner类可以获取用户的输入. Java 5 通过Scanner类的next()和nextLine()方法获取输入的字符串 在读取前我 ...

  3. 第4天 JavaDoc生成文档&Java流程控制(第一节:用户交互Scanner)

    JavaDoc生成文档 javadoc命令是用来生成自己的API文档 参数信息: @author 作者名 @version 版本号 @since 指明需要最早使用的jdk版本 @param 参数名 @ ...

  4. Java流程控制01——用户交互Scanner

    用户交互Scanner sacnner对象 之前的语法并没有实现程序与人的交互.java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入. 基本语法:  S ...

  5. Java基础系列(15)- 用户交互Scanner

    Scanner对象 之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入.java.util.Scanner是Java5的新特征.我们可以 ...

  6. Java流程控制01:用户交互Scanner

    Scanner对象 之前我们学习的基本语法并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入.java.Scanner 是java5 的新特征,我们可以通过Sca ...

  7. Java流程控制:用户交互Scanner

    java.util.Scanner工具类获取用户输入语法:Scanner scanner = new Scanner(System.in);通过Scanner类的next()与nextLine()方法 ...

  8. Scanner用户交互

    Scanner用户交互 Scanner对象 引入语法: Scanner scanner=new Scanner(System.in);(固定的) 小写scanner为定义的名称 scanner.clo ...

  9. 用户数据交互 Scanner

    # 用户交互 Scanner ``` java package study5ran2yl.study; import java.util.Scanner; public class demo09 { ...

随机推荐

  1. input:file样式怎样修改

    问题描述: 我需要点击input:file来修改img中的图片,但是input:file样式太丑 解决办法: 给file设置透明度为0,让用户看不见他 创建新的button按钮 修改button按钮样 ...

  2. 【转】认识JWT

    1. JSON Web Token是什么 JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的.自包含的方式,用于作为JSON对象在各方之间安全地传输信息.该 ...

  3. QTP10启动错误:Error creatingUnable to create configuration directory "C:UsersmR?ã? directory entry

    安装完之后打开就一直: 百度也不知道为哈子(莫非是中文的用户名?反正我不想重装系统),真是很气人. 我就直接创建了一个临时账户,登陆进去,就可以运行了:

  4. URL、URI、URN之间的区别

    URL统一资源定位符 URI统一资源标识符 URN统一资源名称 URL是URI的一个特例. URI由URL和URN两部分组成. 在java类中,URI类不包含任何访问资源的方法,它唯一的作用就是解析. ...

  5. GC(二)CMS

    什么是CMS CMS全称 Concurrent Mark Sweep,是一款并发的.使用标记-清除算法的垃圾回收器, 使用场景 GC过程短暂停,适合对时延要求较高的服务,用户线程不允许长时间的停顿. ...

  6. php中in_array函数的坑

    由于PHP是弱类型语言,所以有自动类型转换 例子 $array = [0, 1, 2, '3']; var_dump(in_array('abc', $array)); //true var_dump ...

  7. VMware exsi虚拟机磁盘扩容

    创建Linux时分配磁盘空间随着使用的增加,使用率逐渐升高,需要对/root进行扩容,此时需要在添加或者扩展一下磁盘. 查看Linux版本信息 [root@localhost ~]# cat /etc ...

  8. Appium swipe实现屏幕滑动

    在 Appium 中提供 swipe() 方法来模拟用户滑动屏幕. swipe() 实现过程 是先通过在屏幕上标记两个坐标,然后再从开始坐标移动到结束坐标. 先看下 swipe 方法定义: def s ...

  9. 【Oracle】rman基于时间点恢复

    rman基于时间点恢复 场景: 由于某研究的误操作,导致财务模块的数据丢失,如何使用rman基于时间点恢复数据. 思路 1.克隆数据库的虚拟机,直接对数据库的数据进行恢复 RMAN> shutd ...

  10. 【前端知识体系-JS相关】深入理解MVVM和VUE

    1. v-bind和v-model的区别? v-bind用来绑定数据和属性以及表达式,缩写为':' v-model使用在表单中,实现双向数据绑定的,在表单元素外使用不起作用 2. Vue 中三要素的是 ...