java算法竞赛必备之快读快写(超详细解读) 您所在的位置:网站首页 怎么读题快 java算法竞赛必备之快读快写(超详细解读)

java算法竞赛必备之快读快写(超详细解读)

2024-05-31 01:30| 来源: 网络整理| 查看: 265

java算法竞赛必备之快读快写(超详细解读)

java写算法的缺点:速度慢、读写复杂、莫名WA(错误答案)、TL(超时)、CL(超内存)…

(那我们还学个啥啊,都转c++写算法不香嘛。)别急别急,有缺点不就有优点嘛。

香不香咱不知道。但是玩c++的咱都惹不起。大佬太多,太卷了啊。

所以java优势就体现出来啊。

java写算法的优点:人少比赛好拿奖,java作为老牌语言在web和安卓领域还是爸爸级的存在所以用java写算法也可以为以后开发做准备啊。。。

废话不多说了,快读快写直接上。

StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));//快读 PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));//快写

使用方法:这里推荐一个超级方便的使用方法,直接写一个读类

class Read{ StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))); public int nextInt() throws Exception{ st.nextToken(); return (int)st.nval; } public String readLine() throws Exception{ // 不推荐使用 st.nextToken(); return st.sval; } }

下面演示一下这个读类的使用

package demo; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.io.StreamTokenizer; public class Main { public static void main(String[] args) throws Exception { PrintWriter p = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out))); Read r = new Read(); int a = r.nextInt(); String str1 = r.readLine(); int b =r.nextInt(); String str2 = r.readLine(); System.out.println(a+str1+b+str2); } } class Read{ StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))); public int nextInt() throws Exception{ st.nextToken(); return (int)st.nval; } public String readLine() throws Exception{ // 这个不推荐使用 st.nextToken(); return st.sval; } }

输入

32 adfa 23 AAA

输出

32adfa23AAA55

由输入输出知道,值都是读进来的。

注意

我们在使用StreamTokenizer时一般只用来处理数字的输入,对于字符串不使用上面的st.sval即上面的readLine()方法,因为st.sval只会读取字母,对于特殊符号和数字不会读取,读入的会是null。

所以如果我们遇到读字符串的还是老老实实的使用BufferedReader。

BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); bf.readLine();

好了,看完这篇文章后你可以忘记Scanner了。我这里就不举例子来对比Scanner,BufferedReader,StreamTokenizer他们三个的读入时间,你只要记住BufferedReader和StreamTokenizer是远远比Scanner速度快的。所以咱就忘了他吧。我知道你可能不舍得。但这是我们进步的象征。最后附上证书,快读还是有用的,哈哈哈。 请添加图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有