Java学习3 流程控制1 用户交互Scanner


流程控制1 Scanner

1、Scanner

  • 作用:用于获取用户的输入

  • 包:java.util.Scanner

    import java.util.Scanner;
  • 基本语法:

    Scanner scanner = new Scanner (System.in) 

2、常用的函数

1、next()

  • 作用:用于读取字符串

  • 注意:

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

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

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

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

2、nextLine()

  • 作用:用于读取字符串

  • 注意:

    1. Enter为结束符,返回输入回车之前的所有字符。(包括空格)

    2. 可以获得空白;

3、hasNext()

  • 作用:用于判断有没有输入字符串

  • 注意:hasNext的判断依据是是否有非空字符,如果有则返回true,否则返回false

4、hasNextLine()

  • 作用:用于判断有没有输入字符串

  • 注意:hasNext的判断依据是是否有一行字符串(包括全空行),如果有则返回true,否则返回false

5、例子:

例子1:

用next方式接收键盘数据,用hasNext判断是否输入字符串

?
import java.util.Scanner;
?
public class Demo01 {
   public static void main(String[] args) {
?
       //创建一个扫描器对象,用于接收键盘数据
       Scanner scanner = new Scanner(System.in);
       System.out.println("使用next方式接收:");
       //判断用户有没有输入字符串
       if (scanner.hasNext()) {
           //使用next方式接收
           String str = scanner.next();
           System.out.println("输入的内容为;"+str);
      }
       //凡是属于IO流的类,如果不关闭会一直占用资源
       scanner.close();
?
  }
}
?

例子2:

package JavaSE.流程控制.scanner;
?
import java.util.Scanner;
?
public class Demo02 {
  public static void main(String[] args) {
      Scanner scanner = new Scanner(System.in);
?
      //和
      double sum = 0;
      //计算输入了多少数字
      int m = 0;
?
      //通过循环判断是否还有输入,并在里面对每一次进行求和统计
      while(scanner.hasNextDouble()){
          double x =scanner.nextDouble();
          m = m + 1;
          sum = sum + x;
      }
?
      System.out.println(sum);
      System.out.println(m);
?
      scanner.close();
  }
}
?