Java中的Scanner类

java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入。创建Scanner对象的基本语法:

  Scanner s = new Scanner(System.in);

在读取前,一遍需要hasNext和hasNextLine判断是否还有输入的数据。它们的区别为:

next():

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

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

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

  4.next()不能得到带有空格的字符串。

nextLine():

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

  2.可以获得空白。

package cuiyuee;
import java.util.Scanner;

public class ScannerTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan = new Scanner(System.in);
        /*
        System.out.println("next方式接收:");
        if(scan.hasNext()){
            String str = scan.next();
            System.out.println("输入的数据为:"+str);
        }
        */
        System.out.println("hasNext方式接收:");
        if(scan.hasNextLine()){
            String str1 = scan.nextLine();
            System.out.println("输入的数据为:"+str1);
        }
    }

}

nextLine()返回结果:

hasNext方式接收:
hi spring
输入的数据为:hi spring

next()返回结果:

next方式接收:
hi spring
输入的数据为:hi

#################################

如果要输入int或float类型的数据,在Scanner类中也有支持,但是在输入之前最好先使用hasNextXxx()方法进行验证,再使用nextXxx()来读取。

package cuiyuee;
import java.util.Scanner;

public class ScannerTestIntFloat {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        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.println("输入小数:");
        if(scan.hasNextFloat()){
            f = scan.nextFloat();
            System.out.println("小数数据:"+f);
        }else{
            System.out.println("输入的不是小数!");
        }
    }

}
package cuiyuee;
import java.util.Scanner;

public class ScannerDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        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));
    }

}

输出为:

1.2
2
3.456
235
end
4个数的和为:241.656
4个数的平均值是:60.414

时间: 2024-10-12 01:14:12

Java中的Scanner类的相关文章

Java中的Scanner类学习

转载自: Java中Scanner的nextInt(),next(),nextLine()方法总结 今天在java上机课时遇到了个小问题,使用Scanner输入数据时,使用了一次nextInt(),一次nextLine(),却只接收了一个整数.代码如下 code1: 1 package cn.dx; 2 3 import java.util.Scanner; 4 5 public class ScannerTest { 6 7 public static void main(String[] a

Java中的Scanner类和String类

1:Scanner的使用(了解)    (1)在JDK5以后出现的用于键盘录入数据的类. (2)构造方法: A:讲解了System.in这个东西.            它其实是标准的输入流,对应于键盘录入        B:构造方法            InputStream is = System.in; Scanner(InputStream is)        C:常用的格式            Scanner sc = new Scanner(System.in);    (3)

Java中的 Scanner简述(企业笔试在线编程的输入控制)

摘要: 最近进行企业在线笔试时,发现企业的笔试平台大都使用赛码网(虽然槽点很多),而且在线编程都需要使用Scanner来读取程序的输入,因此,笔者就在先辈们的成果上对Scanner做了一份全新的.详细的总结.我们知道,java.util.Scanner是Java5的新特征,主要功能是简化文本扫描.这个类最实用的地方表现在获取控制台输入,其他的功能都很鸡肋,尽管Java API文档中列举了大量的API方法,但是都不怎么地,特此简述. 版权声明: 本文原创作者:书呆子Rico 作者博客地址:http

java中的 FileWriter类 和 FileReader类

java中的 FileWriter类 和 FileReader类的一些基本用法 1,FileWriter类(字符输出流类) 构造方法:FileWriter fw = new FileWriter(String fileName);//创建字符输出流类对象和已存在的文件相关联.文件不存在的话,并创建. 如:FileWriter fw = new FileWriter("C:\\demo.txt"); FileWriter fw = new FileWriter(String fileNa

使用myeclipse开发java,解决java中继承JFrame类出现The type JFrame is not accessible due to restriction的问题

在java中创建窗体,导入了java中的JFrame类,之后会出现错误: Access restriction: The type QName is not accessible due to restriction on required library D:\myeclipse professer2014 可以解决的办法为: Project—>Properties—>选中Java Build Path—>选择Libraries,出现下面界面: 选中窗口中原有的JRE库,点击Remov

Java中的嵌套类和内部类

以前看<Java编程思想>的时候,看到过嵌套类跟内部类的区别,不过后来就把它们的概念给忘了吧.昨天在看<数据结构与算法分析(Java语言版)>的时候,又遇到了这个概念,当时就很大的疑惑:嵌套类跟内部类有什么区别?只有是否有关键字static的区别吗? 所以今天找了个时间查了一下两者的详细区别,总结在这篇博客中,既方便自己的复习和学习,也启示他人吧. 1,概念: 定义在一个类内部的类,叫作"嵌套类".嵌套类分为两种:static的和非static的.后者又有一个专

java中的File类

File类 java中的File类其实和文件并没有多大关系,它更像一个对文件路径描述的类.它即可以代表某个路径下的特定文件,也可以用来表示该路径的下的所有文件,所以我们不要被它的表象所迷惑.对文件的真正操作,还得需要I/O流的实现. 1.目录列表 如果我们想查看某个目录下有那些文件和目录,我们可以使用File中提供的list方式来查看,这很像linux下的ls命令. 查看E:/html文件夹下所有的php文件,执行的时候输入的参数为正则表达式 1 package com.dy.xidian; 2

java 中的String类

String a = "aaa"; 用这种方式的时候java首先在内存中寻找"aaa"字符串,如果有,就把aaa的地址给它 如果没有则创建 String a = new String("aaa"); 是不管内存中有没有"aaa" 都开辟一块新内存保存它 可以用以下方法验证下 String a = "aaa"; String b = "aaa"; String c = new String

Java中的Object类

关于Object类的equals()方法的特点: 1) 自反性:对于非空引用x来说,x.equals(x)一定返回true: 2) 对称性:对于非空引用x和y来说,如果x.equals(y)返回true,那么y.equals(x)一定返回true: 3) 传递性:对于非空引用x.y和z来说,如果x.equals(y)返回true,并且y.equals(z)返回true,那么x.equals(z)一定返回true: 4) 一致性:对于非空引用x和y来说,如果x.equals(y)返回true,那么