java利用Scanner获取键盘输入

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java利用Scanner获取键盘输入相关的知识,希望对你有一定的参考价值。

 

在运行一个java程序的时候,可能我们需要在运行的时候传递一些参数进去...咋办呢...

 
java提供了一个Scanner类,利用这个类,我们可以很方便的获取键盘输入的参数...
Scanner是一个基于正则表达式的文本扫描器~~可以从文件,输入流,字符串中解析出基本类型和字符串类型的值。Scanner类提供了多个构造器,不同的构造器可以接受文件,输入流,字符串作为数据源,用于从文件,输入流字符串中解析数据。(摘自《疯狂java讲义》李刚)
代码示例:
 
import java.util.Scanner;

/**
 * Scanner的简单示例
 * */
public class TestScanner {
    
    public static void main(String[] args) {
        
        //创建Scanner对象
        //System.in表示标准化输出,也就是键盘输出
        Scanner sc = new Scanner(System.in);
        //利用hasNextXXX()判断是否还有下一输入项
        while (sc.hasNext()) {
            //利用nextXXX()方法输出内容
            String str = sc.next();
            System.out.println(str);
        }
    }
}

  

结果就是:你在控制台输入什么内容,点击回车后,下面就会输出同样的内容,如果你输入的时候点击了回车或者Tab键,那么输出的内容就会在那个地方换行~~
结果如图:
技术分享图片
 可以利用Scanner在java程序需要参数的时候输入参数
代码示例:TestScannerIn.java
import java.util.Scanner;

/**
 * 使用Scanner在程序需要的时候输入参数
 * */
public class TestScannerIn {
    
    public static void main(String[] args) {
        
        /**
         * 写一个输出个人信息的小例子
         * */
        Scanner sc = new Scanner(System.in);
        sc.useDelimiter("/n");
        System.out.println("欢迎来到冲出地球的博客,我是冲出地球^_^");
        System.out.println("请问你叫什么名字呢?");
        String name = sc.nextLine();
        System.out.println("请问你来自哪里呢?");
        String area = sc.nextLine();
        System.out.println("好的,你来自" + area + ",那么,你们那有什么美食吗?");
        String food = sc.nextLine();
        System.out.println("好的,那么我来复述一下你的信息:");
        System.out.println("你叫" + name + ",来自于:" + area);
        System.out.println("你们那最好吃的东西是:" + food);
        System.out.println("对吧~~");
    }
}

  

结果:
技术分享图片
 
Scanner除了可以获取键盘输入外,也可以获取文件中的内容,将文件中的内容一行一行的输入出来
如果文档在项目中(如图)
技术分享图片
示例代码:TestScannerRead.java
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;


/**
 * 利用Scanner读取项目中的文档
 * */
public class TestScannerRead {
    
    public static void main(String[] args){
        
        Scanner sc;
        try {
            //读取项目中的文档
            sc = new Scanner(new File("ScannerTest.txt"));
            System.out.println("项目中的文本内容是:");
            //通过判断是否有下一行来输出文档内容
            while (sc.hasNextLine()) {
                System.out.println(sc.nextLine());
            }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

  

结果:
技术分享图片
 如果从本地读取文档
示例代码:TestScannerRead.java
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;

/**
 * 利用Scanner读取本地的文件
 * */
public class TestScannerRead {
    
    public static void main(String[] args){
        FileInputStream fis;
        try {
            //利用文件上传功能
            fis = new FileInputStream("D:\text\ScannerTest.txt");
            //设置文件编码
            Scanner sc = new Scanner(fis,"UTF-8");
            System.out.println("本地文件内容:");
            //输出文件内容
            while (sc.hasNextLine()) {
                System.out.println(sc.nextLine());
            }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

  

结果:
技术分享图片

以上是关于java利用Scanner获取键盘输入的主要内容,如果未能解决你的问题,请参考以下文章

java怎么获取控制台输入的数据

用户键盘输入模块java.util.Scanner

Scanner类的简单用法介绍!

Scanner获取键盘输入

利用JAVA从键盘输入一个任意整数后怎么求各位数字之和?

Scanner在java中有啥用法怎么用