zoukankan      html  css  js  c++  java
  • Java中使用Scanner类进行键盘的输入详解

    我们在使用Java写代码时,经常会遇到从键盘输入字符串等操作,这时候我们需要用到的是我们的Scanner类来实现获取用户从键盘上的输入操作。

    Scanner类是一个基于正则表达式的文本扫描器,它可以从文件,输入流,字符串解析出基本类型值和字符串值。Scanner同时也提供了多个构造器,用于接收文件,输入流,字符串。

    当我们引入Scanner这个类的时候,我们需要导入:import java.util.Scanner;这个包

    本篇文档主要是通过介绍3中Scanner执行的操作类型

    (1).Scanner提供了两种方法来扫描输入,这两种方法分别是:hasnextXXX(),nextXXX()

    hasnextXXX():表示是否还有下一个输入项,其中XXX可以用来表示int,long,double,等代表基本数据类型的字符串。注意的是,如果我们只是判断下一个输入的内容是不是字符串,那么我们可以直接使用hasnext()。

    nextXXX():获取用户输入的项,使用nextXXX()就代表了用户输入的数据已经被显示在IDE上。XXX的含义与上文的含义相同。

    接下来举一个例子来实现这两个方法的操作:

    public class test {
    
    	public static void main(String[] args) throws FileNotFoundException {
    		// TODO Auto-generated method stub
    		Scanner sc = new Scanner(System.in);  //这句话代表了创建一个Scanner的实例对象,这个对象可以为用户提供输入,注意new Scanner(System.in)
    		while(sc.hasNext()){
    			System.out.println("输入想要输入的内容"+sc.next()); //以空格为分隔符
    		}
    		
    		
    	}
    
    }	
    

     得到的最终结果如下:

     

     上面的这个程序,是我们得到的最终结果,它表示用户输入字符串,在IDE上直接显示用户的输入,但是我们需要注意的是,当我输入12 32的时候,该程序会有两行输入,因为我们使用的方法是以空格为分隔符的,当我们使用空格的时候,自动的变成两个字符串输入。

    (2).Scanner类为了方便,提供了两个方法进行逐行的读取(相当于以回车为分隔符)。这两种方法分别是:boolean hasNextLine(),String nextLine()。

    boolean hasNextLine():返回输入源中是否还有下一行。

    String nextLine():返回输入源中下一行的字符串。

    我们也举一个例子来实现这两个方法,用来与上述方法进行比较:

    public class test {
    
    	public static void main(String[] args) throws FileNotFoundException {
    		// TODO Auto-generated method stub
    		Scanner sc = new Scanner(System.in);
    		System.out.println("输入想要输入的内容");
    		while(sc.hasNextLine()){
    			System.out.println("这一段是我输入的内容:"+sc.nextLine());
    		}
    	}
    
    }	
    

     上述代码,我们最终得到的结果是:

     通过观察上面的结果,可以知道,空格符已经不是分隔符,只有当我们使用回车换行的时候,该方法才执行下一次的输入。

    (3).Scanner类的构造器还提供了一种可以读取文件的输入。该方法只需要在创建Scanner对象时传入一个File对象作为参数,就可以让Scanner读取文件的内容。(IO流之后可能会专门做一篇文档详细说明,这里暂且知道即可。)

    代码的实现如下:

    首先,我在我的D盘建一个文件夹1.txt,该文件夹的内容如下:

     通过执行下面的代码:

    public class test {
    
    	public static void main(String[] args) throws FileNotFoundException {
    		// TODO Auto-generated method stub
    //		//读取文件中的内容
    		Scanner sc = new Scanner(new File("D:\1.txt"));  //注意这个地方,Scanner在创建对象的时候传入了File对象作为参数,这个File对象就是我们文件的路径
    		while(sc.hasNextLine()){
    			System.out.println(sc.nextLine());
    		}
    
    	}
    
    }	  

    上述代码得到的最终结果:

     与前文我们文件中所写的内容相同。

    以上这三种Scanner类使用的方式在Java初期基本OK(至少目前我只用过这三个,文件的输入基本没用过),如果后续我还使用了Scanner类的某些方法,我会在写一篇后续~

    为了我们共同进步,我这里有计算机专业的各种视频,

    如果想要,关注我的公众号:念流声。私聊我,看到后给你连接(只放了一张图片,视频有很多,需要什么可以私聊问我,有的话就给你)。

  • 相关阅读:
    Maven管理Android项目
    如何运行github上的源码
    微信公众平台消息接口开发(3)
    微信公众平台消息接口开发(2)
    关于移动互联网下机场APP的一些思考
    去掉joomla!版权信息
    微信公众平台消息接口开发(4)
    环境变量操作
    vi/vim基本使用方法
    关于WebForm,十分惭愧(下)
  • 原文地址:https://www.cnblogs.com/liuzengzhi/p/11765704.html
Copyright © 2011-2022 走看看