zoukankan      html  css  js  c++  java
  • Java快速IO(ACM)必备

     en....

    无非用到的是

    1. new Scanner(System.in);

    2.new BUfferReader(new InputStreamReader(System.in);

    3.System.in.read() //需要转换

    当然1,2这两个还有许多坑要注意,比如说 next() 不会读入null字符,就一直等待,nextline() 吸收 到缓冲区 但是不会读入,readLine 与read()也是一样

    这里需要注意:in.nextInt() 接着 in.nextLine()会出现读入空缺现象,很明显,我前面说过,nextLine会吸收 到缓冲区

    贴代码:

    package IO;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.StringTokenizer;
    
    /**
     * Class for buffered reading int and double values
     */
    class Reader解决超时 {
        static BufferedReader reader;
        static StringTokenizer tokenizer;
    
        /**
         * call this method to initialize reader for InputStream
         */
        static void init(InputStream input) {
            reader = new BufferedReader(
                    new InputStreamReader(input));
            tokenizer = new StringTokenizer("");
        }
    
        /**
         * get next word
         */
        static String next() throws IOException {
            while (!tokenizer.hasMoreTokens()) {
                //TODO add check for eof if necessary
                tokenizer = new StringTokenizer(
                        reader.readLine());
            }
            return tokenizer.nextToken();
        }
    
        static String nextLine()throws IOException{
            while(!tokenizer.hasMoreElements()){
                tokenizer=new StringTokenizer(
                        reader.readLine()
                );
            }
            return tokenizer.nextToken("
    ");
        }
    
        static int nextInt() throws IOException {
            return Integer.parseInt(next());
        }
    
        static double nextDouble() throws IOException {
            return Double.parseDouble(next());
        }
    
        public static void main(String[] args) throws IOException{
            init(System.in);
            StringTokenizer st = new StringTokenizer("this is a test");
    
            while (st.hasMoreTokens())
    
            {
    
                System.out.println(st.nextToken());
    
            }
           // System.out.println(next());
            System.out.println(nextLine());
        }
    }
  • 相关阅读:
    Java中String类两种实例化的区别(转)
    Linux内核如何装载和启动一个可执行程序(转)
    CentOS 7 下安装jdk1.8(转)
    MySQL中死锁(转)
    CTF取证方法大汇总,建议收藏!
    实战经验|大神战队都在i春秋教你打CTF
    CTF丨从零开始搭建WEB Docker靶场
    业务逻辑漏洞探索之敏感信息泄露
    实战经验丨业务逻辑漏洞探索之活动类漏洞
    漏洞经验分享丨Java审计之XXE(下)
  • 原文地址:https://www.cnblogs.com/dgwblog/p/10047565.html
Copyright © 2011-2022 走看看