用户交互Scanner

142 阅读1分钟

用户交互Scanner

通过Scanner类来获取用户的输入

基本语法

 Scanner s = new Scanner(System.in);

通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一半需要使用hasNext()与hasNextLine判断是否还有输入的数据。

使用next()输入

 import java.util.Scanner;
 ​
 public class demo01{
     public static void main(String[] args){
         
         //创建一个扫描器对象,用于接受键盘数据
         Scanner scan = new Scanner(System.in); //输入Scanner后要按enter,自动导入Scanner包
         
         System.out.println("请使用next方式接收:");
         
         //判断用户有没有输入字符串
         if(scan.hasNext()){
             String str = scan.next();  //使用next方式接收
             
             System.out.println("接收的内容为:"+str);
         }
         scan.close();//凡是属于IO流的,如果不关闭会一直占用资源,要养成好习惯用完就关掉
     }
 }

使用nextLine输入

 import java.util.Scanner;
 ​
 public class demo02{
     public static void main(String[] args){
       
         Scanner scan = new Scanner(System.in);
         
         System.out.println("请使用next方式接收:");
         
         if(scan.hasNextLine()){
             String str = scan.nextLine();
             
             System.out.println("接收的内容为:"+str);
         }
         scan.close();
     }
 }

不使用next和nextLine输入

 import java.util.Scanner;
 ​
 public class demo03{
     public static void main(String[] args){
        
         Scanner scan = new Scanner(System.in);
         
         System.out.println("请使用next方式接收:");
         
         String str = scan.nextLine();
             
         System.out.println("接收的内容为:"+str);
         
         scan.close();
     }
 }

注意

next():

1、一定要读取到有效字符后才可以结束输入;

2、对输入有效字符之前遇到的空白,next()方法会自动将其去掉;

3、只有输入有效字符后才能将其后面输入的空白作为分隔符或者结束符;

4、next()不能得到空格后面的字符串

nextLine():

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

2、可以获得空白