zoukankan      html  css  js  c++  java
  • JAVA基础篇之Scanner

    该文转自:https://www.cnblogs.com/liuzengzhi/p/11765704.html

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

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

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

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

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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    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的时候,该程序会有两行输入,因为我们使用的方法是以空格为分隔符的,当我们使用空格的时候,自动的变成两个字符串输入。

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

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

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

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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    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,该文件夹的内容如下:

     通过执行下面的代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    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());
            }
     
        }
     
    }     

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

  • 相关阅读:
    WPF 使用 Direct2D1 画图 绘制基本图形
    WPF 使用 Direct2D1 画图 绘制基本图形
    dot net core 使用 IPC 进程通信
    dot net core 使用 IPC 进程通信
    win2d 图片水印
    win2d 图片水印
    Java实现 LeetCode 240 搜索二维矩阵 II(二)
    PHP closedir() 函数
    PHP chroot() 函数
    PHP chdir() 函数
  • 原文地址:https://www.cnblogs.com/muyouzhi/p/12521200.html
Copyright © 2011-2022 走看看