zoukankan      html  css  js  c++  java
  • JAVA Scanner 的一些用法注意事项

    scanner 的几种常见用法

    scanner 方法提供了一种方便从控制台读取数据的方法。使用格式为 Scanner in = new Scanner(System.in); 之后可以对于in做一系列操作。如:

    • 读取下一字符串 next()
    • 读取一整行数据 nextLine()
    • 返回一个布尔值,用于判断下一行是否数据 hasNext()
    • 以特定格式读取数据(正则) useDelimiter(“format”)
    • 读取特定数据:nextxx() nextInt(), nextFloat()等

    程序测试

    测试代码

    此处实现将scanner类的一些常见函数使用进行展示:

    package testScanner;
    
    import java.util.Scanner;
    
    public class testScanner {
        public static void main(String[] args){
            Scanner in = new Scanner(System.in);
            String aString;
            aString = in.next();//读取单个字符串,遇空格终止读取。使用nextline则可以读取整行
            System.out.println("read result by using .next: " + aString);
            System.out.println("the remant part(staying in the buffer): " + in.next());
            //testFunction();
            in.useDelimiter("[^a-zA-Z]+");//使用正则表达式规范读取格式
            //System.out.println(in.delimiter());
            System.out.println("Only alphabet is allowed:");
            while(in.hasNext()){
                System.out.println(in.next());
            }
            in.close();
        }
    
        public static void testFunction(){
            Scanner test = new Scanner(System.in);
            System.out.println("in the test function");
            test.close();
        }
    }

    程序运行结果

    程序运行结果

    使用过程中的一些注意事项

    (Exception in thread “main” java.util.NoSuchElementExceptionation java.util.Scanner.throwFor(Unknown Source)at java.util.Scanner.next(Unknown Source错误的产生与解决方案)

    依然是上面那一段程序如果调用testFunction函数的话,进过测试可以发现在读取正则部分时,无法实现从控制台输入。 
    这是因为在函数中,声明了一个scanner对象,并且调用了close方法。这可能是由于所有的scanner类共享一个输入流,当其中一个调用关闭函数的时候,所有的scanner对象都关闭了。 
    所以建议大家在编写程序时,在不同地方使用scanner类的时候,注意只需调用一次close方法,并且要注意在此后无任何读控制台操作。错误的用法轻则会导致无法读入。重则会使程序报错。大家有时遇到报错信息为:

    出错提示

    问题大多是由于这种错误操作引起的,此时只需确保只在最后调用一次close方法就可消除此错误信息。

  • 相关阅读:
    Servlet的生命周期及工作原理
    抓包---firebug
    firebug抓包
    token认证来龙去脉
    性能测试报告注意事项
    性能测试报告
    Error -26601解决办法
    lr新手误区
    css定位
    xpath定位
  • 原文地址:https://www.cnblogs.com/baorantHome/p/8110203.html
Copyright © 2011-2022 走看看