zl程序教程

您现在的位置是:首页 >  APP

当前栏目

用户交互Scanner的应用

2023-04-18 15:25:46 时间

用户交互Scanner的应用

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

基本语法:

Scanner scanner=new Scanner(System.in);

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

package com.fisherstudy.scanner;

import java.util.Scanner;

public class Demo01 {
   public static void main(String[] args) {
       //创建一个扫描器对象,用于接收键盘的数据
       Scanner scanner = new Scanner(System.in);
       System.out.println("使用next()来接收:");
       //判断用户是否有输入字符串
       if(scanner.hasNext()){
           //使用next方式来接收
           String a=scanner.next();//程序会等待键盘输入
           System.out.println("输出的内容为:"+a);
      }
       //凡是IO流的类如果不关掉会一直占用资源,要养成良好的习惯,用完就关掉
      scanner.close();
       //next()不能获得带有空格的字符串
  }
}
package com.fisherstudy.scanner;

import java.util.Scanner;

public class Demo02 {
   public static void main(String[] args) {
       Scanner scanner = new Scanner(System.in);
       System.out.println("使用nextLine来接收");
       //利用nextLine来判断输入
       if(scanner.hasNextLine()){
           String str=scanner.nextLine();
           System.out.println("输出的的字符串内容为:"+str);
      }
       //凡是IO流的类如果不关掉会一直占用资源,要养成良好的习惯,用完就关掉
       scanner.close();
       //nextline()可以获得带有空格的字符串
  }
}



next与nextLine的区别

package com.fisherstudy.scanner;

import java.util.Scanner;

public class Demo03 {
        //next和nextLine的区别
   public static void main(String[] args) {
       Scanner s= new Scanner(System.in);
       String str=s.nextLine();
       System.out.println("刚才输入的内容为"+str);
       String str2=s.next();
       System.out.println("刚才输入的内容为"+str2);
       s.close();
  }
}

Scanner的扩展

除了next()和nextLine(),还有nextInt,nextDouble,nextFloat等来判断数据的要素

package com.fisherstudy.scanner;

import java.util.Scanner;

public class Demo04 {
   public static void main(String[] args) {
       Scanner scanner = new Scanner(System.in);
       System.out.println("请输入一个double类型的数字:");
       if(scanner.hasNextDouble()){
           double i=scanner.nextDouble();
           System.out.println("输入的数字为"+i);
      } else System.out.println("你输入的数字不是double类型");

       scanner.close();
  }
}
package com.fisherstudy.scanner;

import java.util.Scanner;

public class Demo05 {
   public static void main(String[] args) {
       Scanner scanner = new Scanner(System.in);
       System.out.println("请输入一个int类型的数字:");
       if(scanner.hasNextInt()){
           int i=scanner.nextInt();
           System.out.println("输入的数字为"+i);
      } else System.out.println("你输入的数字不是int类型");

       scanner.close();
  }
}
package com.fisherstudy.scanner;

import java.util.Scanner;

public class Demo06 {
   public static void main(String[] args) {
       Scanner scanner = new Scanner(System.in);
       double sum=0;
       int i=0;
       while (scanner.hasNextDouble()){
           double x=scanner.nextDouble();
           sum=sum+x;
           i=i+1;
      }
       System.out.println("当前你输入的不是double类型的数");
       System.out.println("你输入的doulbe类型的数字个数一共为"+i);
       System.out.println("你输入的所有的double类型的数字的平均数为"+sum/i);

       scanner.close();
  }
}

总结:每调用一次Scanner用户输入,都要记得关闭掉,比如:sanner.close();