• 用户交互Scanner的用法


    Java用户交互的目的是实现程序与人的交互;一般通过Scanner来获取用户的输入;java.util.Scanner 是Java5的新特征。

    基本语法:

      Scanner s=new Scanner(System.in);

    我们可以通过Scanner类的next()与nextLine()方法获取用户输入的数据,而在获取之前可以通过hasNext()与hasNextLine判断是否有输入的数据。

    代码1:

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

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

    if(scanner.hasNext()){            //判断用户有没有输入字符串

      String str=scanner.next();                               //使用next()方法接收

      System.out.println(str);          //运行程序时,如果我们输入Hello World!  结果会是Hello

    }

    scanner.close();               //属于IO流的类, 如果不关闭会一直占用资源,所以用完要关闭

    代码2:

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

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

    if(Scanner.hasNextLine()){            //判断用户有没有输入字符串

      String str=scanner.nextLine();        //使用nextLine()方法接收

      Syste.out.println(str);                                         ////运行程序时,如果我们输入Hello World!  结果会是Hello World!

    }

    scanner.close();                //属于IO流的类, 如果不关闭会一直占用资源,所以用完要关闭

    由代码的输出结果就可知道next()与nextLine()的输出结果是有很大区别的

    总结:

    next():

    1、一定要读取到有效字符后才可以结束输入。即程序运行时一定要输入有效字符才行

    2、对输入有效字符之前遇到的空白,会自动忽略

    3、当检测到有效字符时,才会把其后面输入的空白作为分离符或者结束符。

    4、next()不能得到带有空格的字符串,即输入hello world 得到的只有hello。

    nextLine():

    1、以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符,所以能输出hello world!

    2、可以获得空白

    结论:next()方法比较局限,nextLine()用途比较广一些。

    Scanner拓展:

    上面的是判断用户是否输入字符串,那小数和整数呢?

    小数:hasNextFloat()                nextFloat()

    整数:hasNextInt()                   nextInt()

    问键盘输入几个数,且这些数的和是:

    代码:

    Scanner scanner=new Scanner(System,in);

    int m=0;

    double sum=0;

    while(scanner.hasNextDouble()){

    double  x=scanner.nextDouble();

    m=m+1;                                              //多少个

    sum+=x;             //它们的和

    }

    scanner.close();

  • 相关阅读:
    <转> 百度空间 最大子图形问题详解
    Hdu 1124 Factorial
    Uva 457 Linear Cellular Automata
    求01矩阵中的最大的正方形面积
    【HYSBZ】1036 树的统计Count
    【SPOJ】375 Query on a tree
    【POJ】3580 SuperMemo
    【CodeForces】191C Fools and Roads
    【FOJ】2082 过路费
    【HDU】3726 Graph and Queries
  • 原文地址:https://www.cnblogs.com/bbq668/p/11982580.html
Copyright © 2020-2023  润新知