Scanner

发布时间 2023-04-05 16:19:13作者: 你踩我尾巴了

用户交互Scanner

基本语法

Scanner s = new Scanner(System.in);

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

next():

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

        Scanner scanner =new Scanner(System.in);
		
        System.out.println("使用next方式接收:");
		//判断是否有输入
        if(scanner.hasNext()){
		//接收键盘输入
            String str = scanner.next();
            System.out.println("输出的文字为:"+str);
        }
		//关闭Scanner
        scanner.close();
		//假设输入“hello world”,只会输出hello。

nextLine():

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

        Scanner scanner =new Scanner(System.in);
		
        System.out.println("使用nextLine方式接收:");
		//判断是否有输入
        if(scanner.hasNextLine()){
		//接收键盘输入
            String str = scanner.nextLine();
            System.out.println("输出的文字为:"+str);
        }
		//关闭Scanner
        scanner.close();
		//假设输入“hello world”,会输出全部。

获取不同类型的数据

        int i = 0;
        float f = 0.0f;
        Scanner scanner =new Scanner(System.in);
        System.out.println("输入一个整数");
        if(scanner.hasNextInt()){
             i = scanner.nextInt();
            System.out.println("输出的整数为:"+i);
        }else{
            System.out.println("输入的不是整数");
        }
        System.out.println("输入一个浮点数");
        if(scanner.hasNextFloat()){
            f = scanner.nextFloat();
            System.out.println("输出的浮点数为:"+f);
        }else{
            System.out.println("输入的不是浮点数");
        }
        scanner.close();

获取多个数据

        Scanner scanner = new Scanner(System.in);
        double sum =0;
        int n =0;
        System.out.println("请输入数据");
		//通过while循环来获取多个数据
        while (scanner.hasNextDouble()){
            double x=scanner.nextDouble();
            sum=sum+x;
            n++;
            System.out.println("已经接收了"+n+"个数据,和为"+sum);
        }
        scanner.close();