Scanner对象

Scanner对象

1.next()读取数据

  • 读取到有效字符后才会结束输入;//一定要输入不然程序会一直运行。

  • 对输入有效字符前的空白,next()方法会自动去除;以空白即空格为结束符

  • 只有输入有效字符后空白即空格才会作为结束符;

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

 public class Demo01 {
     public static void main(String[] args){
         //创建一个扫描对象,用于接收键盘数据
         Scanner scanner = new Scanner(System.in);
         System.out.println("输入内容为:");
        //判断用户有没有输入字符串
         if(scanner.hasNext()) {
             //使用next方式接收
             String str = scanner.next(); //输入结果为Hello world
             System.out.println("输出内容为:" + str); //接受结果为Hello
        }
         //使用IO流的类会一直占用资源,用完都要给他关掉,节约资源
         scanner.close();
    }
 }

输入Hello World,只接收到Hello。Hello与World各字母都为有效字符,但Hello前面的空白会去掉,后面的会当作结束符。

!!!但把if改为while会分别输出Hello和World,因为第一次指针指向了hello的最后一个o(未搞清楚是指向hello还是o),对于第二次循环指针相当于是从o或者hello开始的。

2.nextLine()接收数据

  • 以enter为结束符

  • 能接收到空白

 public class Demo02 {
     public static void main(String[] args) {
         //创建一个扫描器对象,用于接收键盘数据
         Scanner scanner = new Scanner(System.in);
         System.out.println("输入结果为:");
         //用nextLine来接收数据
         if(scanner.hasNextLine()){
             String str=scanner.nextLine(); //输入结果为Hello World
             System.out.println("输出结果为:"+str);  //接受结果为Hello World
        }
         scanner.close();
    }
 }

输入Hello World,接收到Hello World

注意:要关掉,即scanner.close();

//使用IO流的类会一直占用资源,用完都要给他关掉,节约资源

if判断可以去掉,因为平时必然会输入数据,且只有输入数据程序才会结束

posted @ 2022-12-21 18:30  武义一中梁朝伟  阅读(23)  评论(0)    收藏  举报