ccf技巧之java快速io

关于java快速io

在ccf csp考试中,使用Java语言往往会导致超时,可使用java 的快速io解决这个问题,考试时最好在准备时间敲完这段代码,以免浪费考试时间。

代码实现

package com.company;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

    public static void main(String[] args) {
        FastIO fastIO = new FastIO();
        //别忘记初始化哦,这里是从标准输入读入,所以是System.in
        fastIO.init(System.in);

        //尝试读入一个数字
        int a = fastIO.nextInt();
        System.out.println(a);
        //尝试使用next()
        String str1 = fastIO.next();
        System.out.println(str1);
        //尝试使用nextLine();
        String str2 = fastIO.nextLine();
        System.out.println(str2);
    }
}
class FastIO{
    BufferedReader reader;
    StringTokenizer tokenizer;
    void init(InputStream inputStream){
        reader = new BufferedReader(new InputStreamReader(inputStream));
        tokenizer = new StringTokenizer("");
    }
    //读入一个字符串
    String next(){
        while (!tokenizer.hasMoreTokens()){
            try{
                tokenizer = new StringTokenizer(reader.readLine());
            }catch (IOException e){
                e.printStackTrace();
            }
        }
        return tokenizer.nextToken();
    }
    //读入一整行
    String nextLine(){
        while (!tokenizer.hasMoreElements()){
            try{
                tokenizer = new StringTokenizer(reader.readLine());
            }catch (IOException e){
                e.printStackTrace();
            }
        }
        return tokenizer.nextToken("\n");
    }
    //读入int类型数据
    int nextInt(){
        return Integer.parseInt(next());
    }
    //读入double类型数据
    double nextDouble(){
        return Double.parseDouble(next());
    }
}

next()与nextLine()的区别

(参考链接:https://blog.csdn.net/qq_38986609/article/details/78598103
next()方法在读取内容时,会过滤掉有效字符前面的无效字符,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其过滤掉;只有在读取到有效字符之后,next()方法才将其后的空格键、Tab键或Enter键等视为结束符;所以next()方法不能得到带空格的字符串。

nextLine()方法字面上有扫描一整行的意思,它的结束符只能是Enter键,即nextLine()方法返回的是Enter键之前没有被读取的所有字符,它是可以得到带空格的字符串的。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值