Java Scanner(读取输入)

Scanner类

Scanner是SDK1.5新增的一个类,可是使用该类创建一个对象.。想要通过控制台进行输入,首先需要构造一个Scanner对象,并与“标准输入流”System.in关联。
Scanner scan = new Scanner(System.in);

Scanner类各种方法的实现

next()与nextLine()读取字符串

next():

  1. 一定要读取到有效字符后才可以结束输入。
  2. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
  3. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
  4. next()不能得到带有空格的字符串。

nextLine():

  1. 以Enter为结束符,nextLine()方法返回的是输入回车之前的所有字符。
  2. 可以获得空白。

 public static void main(String[] arg){
  Scanner in1=new Scanner(System.in); 
  System.out.println("What is your name?");
  String name1=in1.nextLine();
  System.out.println("你的姓名是"+name1);
  
  Scanner in2=new Scanner(System.in); 
  System.out.println("What is your name?");
  String name2=in2.next();
  System.out.println("你的姓名是"+name2);
 }

结果:

What is your name?
wan ming
你的姓名是wan ming
What is your name?
wan ming
你的姓名是wan

netInt()和nextFloat()读取整数和浮点数及通过hasnextXxx进行判断

  public static void main(String[] args) { 
         Scanner scan = new Scanner(System.in);  
         int i = 0 ; 
         float f = 0.0f ; 
         System.out.print("输入整数:"); 
         if(scan.hasNextInt()){                 // 判断输入的是否是整数 
             i = scan.nextInt() ;               
             System.out.println("整数数据:" + i) ; 
         }else{                                 // 如果输入错误的信息 
             System.out.println("输入的不是整数!") ; 
         } 
         System.out.print("输入小数:"); 
         if(scan.hasNextFloat()){               // 判断输入的是否是小数 
             f = scan.nextFloat() ;            
             System.out.println("小数数据:" + f) ; 
         }else{                                 //如果 输入错误的信息 
             System.out.println("输入的不是小数!") ; 
         } 
     } 

结果:

输入整数:10
整数数据:10
输入小数:10.0
小数数据:10.0

netDouble()读取浮点数及输入多个数字求总和平均数

 public static void main(String[] args)   { 
        Scanner scan = new Scanner(System.in); 
        double sum = 0; 
        int m = 0; 
        while(scan.hasNextDouble())  { 
            double x = scan.nextDouble(); 
            m = m + 1; 
            sum = sum + x; 
        } 
 
        System.out.println(m+"个数的和为"+sum); 
        System.out.println(m+"个数的平均值是"+(sum/m)); 
    } 

结果:

10
12
15
24
25
end
5个数的和为86.0
5个数的平均值是17.2









  • 8
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值