编程竞赛小技巧
前言:博主在刷竞赛题的时候发现绝大多数的题目都是要求你在这个代码框架里面写:
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);//在此输入您的代码...scan.close();}
}
默认会导入Scanner这个类,用于实现输入功能
既然是打竞赛,那肯定是程序运行速度优先,所以这里其实是可以优化的
优化点:
实际上InputStreamReader + BufferedReader + StringTokenizer + IOException这四个类 等同于 Scanner这个类
虽然写起来比较繁琐,但实际程序运行速度经过测试却是要快于Scanner的
第1步:IOException
作用:这不是一个干活的工具,而是一个必须遵守的安全规则。因为前三步都涉及有风险的I/O操作,Java强制我们必须声明会处理这个“异常”。
记忆口诀:开工之前,先签安全协议。
第2步:InputStreamReader
作用:连接最底层的数据源 (System.in),将机器才懂的“字节流”翻译成Java程序喜欢的“字符流”。
记忆口诀:数据进来,先找翻译。
第3步:BufferedReader
作用:从“翻译官”那里一次性批量读取大量字符放入“缓冲区”,极大地提高读取速度。
记忆口诀:翻译完了,进缓冲等候
第4步:StringTokenizer
作用:将从“缓存区”里取出的一整行字符串,切割成一个个独立的、可用的数据片段。
记忆口诀:缓冲区下来,进厂切割。
