Logo

郎哥编程

Scanner类的使用

2019-12-08 1056

当程序需要从键盘获取用户的输入时,就可以通过API库的Scanner类来获取用户的输入。当通过Scanner类获取用户输入时,控制台会一直等待用户的输入,直到用户敲回车键,用户的一次输入过程才结束。

Scanner类的初始化

程序要使用Scanner类,需要通过import关键字导入java.util.Scanner类。在代码中声明Scanner变量,并用new运算符实例化Scanner,实例化Scanner时,需要传入System.in对象,Scanner通过传入的System.in获取用户输入,并对用户输入的字符进行处理,屏蔽了获取用户输入的复杂操作。

实例化Scanner类的语法如下:

Scanner  scanner = new  Scanner(System.in);

案例1:Scanner类的初始化,在PbaseUnit8项目unit包下创建ScannerInitSample类。代码如下:

/** 
* @Title: ScannerInitSample.java 
* @Package unit 
* @Description: Java基础知识课程案例 
* @author 编程训练营 
* @version V1.0 
*/ 
 
package unit;
 
import java.util.Scanner;
 
/**
 * @ClassName: ScannerInitSample
 * @Description: Java API库的使用(Scanner类的使用)案例1
 * @author 编程训练营
 *
 */
 
public class ScannerInitSample {
 
    /**
     * @Title: main
     * @Description: Java程序入口main方法
     * @param @param args 参数
     *
     * @return void 返回类型 @throws
     */
 
    public static void main(String[] args) {
       // 声明Scanner变量,并用new运算符实例化Scanner
       Scanner sc = new Scanner(System.in);
       // 提示用户输入字符串
       System.out.println("请输入字符串");
       // 调用Scanner方法next()获取用户输入
       String tempValue = sc.next();
       // 输出用户输入的字符串
       System.out.println("您输入的字符串是:"+ tempValue);
    }
 
}

代码结构分析

程序功能主要是演示Scanner如何声明及初始化。

语句“import java.util.Scanner;”,用于导入包含Scanner的类库,Scanner包含在Java 核心类库util中,要使用Scanner类,必须导入java.util.Scanner类,类库导入关键字为import。

Scanner类的方法

Scanner类提供了多个方法,用于完成字符串的输入。下面列举了几个主要的操作方法,其它方法请查阅Java  API文档。

(1)方法名称:next()

方法说明:返回由输入设备输入的有效字符,返回类型为字符串。该方法一定要读取到有效字符后才能返回。

方法示例:

Scanner sc = new Scanner(System.in);

String   szWelcome = sc.next();

(2)方法名称:nextLine()

方法说明:返回由输入设备输入的字符串,返回类型为字符串。该方法以用户按下回车键(Enter)结束当前输入。

方法示例:

 Scanner sc = new Scanner(System.in);

String   szWelcome = sc. nextLine() ;

案例2:Scanner类的输入操作。在PbaseUnit8项目unit包下创建ScannerInputSample类。代码如下:

/** 
* @Title: ScannerInputSample.java 
* @Package unit 
* @Description: Java基础知识课程案例  
* @author 编程训练营 
* @version V1.0 
*/ 
 
package unit;
 
import java.util.Scanner;
 
/** 
* @ClassName: ScannerInputSample 
* @Description: Java API库的使用(Scanner类的使用)案例2
* @author 编程训练营 
* 
*/
 
public class ScannerInputSample {
 
    /** 
    * @Title: main 
    * @Description: Java程序入口main方法  
    * @param @param args    参数 
   
    * @return void    返回类型 
    * @throws 
    */
 
    public static void main(String[] args) {
         //声明Scanner变量,并用new运算符实例化Scanner
         Scanner sc = new Scanner(System.in);
         //提示用户输入字符串
         System.out.println("请输入字符串");    
         //调用Scanner方法nextLine()获取用户输入
         String  tempValue = sc.nextLine();
         //输出用户输入的字符串
         System.out.println("您输入的字符串是(nextLine):" + tempValue);    
 
         //提示用户输入字符串
         System.out.println("请输入字符串");    
         //调用Scanner方法next()获取用户输入
         tempValue = sc.next();
         //输出用户输入的字符串
         System.out.println("您输入的字符串是(next):"+tempValue);    
      }
}

代码结构分析

程序功能主要是演示Scanner的next和nextLine输入方法的区别。

语句“import java.util.*;”,用于导入包含Scanner的类库,Scanner包含在Java 核心类库util中,要使用Scanner类,必须导入java.util库,类库导入关键字为import。

语句“String  tempValue = sc.nextLine();”,通过nextLine方法获取用户输入,用户按下回车键(Enter),nextLine返回按下回车键前所有输入的字符。

语句“tempValue = sc.next();”,通过next方法获取用户输入,用户按下回车键(Enter),next返回过滤空格后的字符串。

程序执行结果如下图所示:

image.png                                            

从上述结果可以看出,nextLine返回按下回车键前输入的所有字符,包括空格;next则返回过滤掉空格后的字符串。


评论区

登录 后发表评论
暂无评论