lxyyds

Scanner 对象

1.

 

 

  1. 基础的语法

    Scanner s = new Scanner(System.in);

     

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

next() 和 nextLine()区别

  1. next():

  • 一定要读到有效字符后才可以结束输入

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

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

  • next() 不能得到带有空格的字符串

  1. nextLine():

  • 以enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所以字符

  • 空白可以获得

 

列子

  //创建一个扫描器对象,用于接收键盘数据
       Scanner scanner = new Scanner(System.in);

       System.out.println("使用next方式接受:");


       //判读用户有没有输入字符串
       if (scanner.hasNext()){
           String str = scanner.next();//程序会等待输入完毕
           //使用next方式接受
           System.out.println("输出内容为:"+str);
       //凡是属于Io 流的类如果不会关闭会一直占用资源,要养成好的习惯用完就关掉
  scanner.close();

输入hello world, next() ,只会输出 hello

 

 

 

 

 Scanner scanner = new Scanner(System.in);
       //创建一个扫描对象,用键盘来接受
       System.out.println("使用next接受:");
       //输出

       if(scanner.hasNextLine()){
           //如果用户输入字符串就进来

            String str = scanner.nextLine();
                //字符长定义用str ,来存储数据输入完毕
           System.out.println("输出内容:"+str);
              //输出字符串的内容,//注意这里字符串的内容要用拼接符+ str 来表示
           scanner.close();
           //关闭流程,否则会浪费资源

输入 hello world ,nextLine() ,则会全部输出

 

 

由此可见next() 和nextLine区别所在

例子三:不用判断语句来写Scanner,最基础的

//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);

System.out.println("使用next方式接受:");

String str = scanner.next();//程序会等待输入完毕
//使用next方式接受
System.out.println("输出内容为:"+str);
//凡是属于Io 流的类如果不会关闭会一直占用资源,要养成好的习惯用完就关掉
scanner.close();
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);

System.out.println("使用next方式接受:");

String str = scanner.nextLine();//程序会等待输入完毕
//使用next方式接受
System.out.println("输出内容为:"+str);
//凡是属于Io 流的类如果不会关闭会一直占用资源,要养成好的习惯用完就关掉
scanner.close();

//这两种的输出结果跟上面2种当然也是一样的


其他nextint() 和nextLine()用法也是一样的

Scanner scanner = new Scanner(System.in);
int i =0;
float f =0.0f;

System.out.println("请输入整数");

if (scanner.hasNextInt()){
   //如果输入的是整数就进来
   i = scanner.nextInt();
   System.out.println("整数数据"+i);

}else {

   System.out.println("输入的不是整数!");

}
if (scanner.hasNextFloat()){
   f = scanner.nextFloat();
   System.out.println("小数据"+f);

}else {zhenshu

   System.out.println("输入的不是小数!");

}
scanner.close();

例题

//我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果;
Scanner scanner = new Scanner(System.in);

double sum =0;
//总和
int num = 0;
//计算输入多上个数字
while(scanner.hasNextDouble()){
   //判断是否输入,并在里面对每一次进行求和统计
   double  x = scanner.nextDouble();
   //定义x,存储,输入的值是double类型
   num = num +1;
   sum = sum + x;


}
System.out.println(num + "个数的和:"+ sum);
System.out.println(num + "平均数为:"+ (sum / num));

scanner.close();

 

 

 

分类:

技术点:

相关文章: