java算法竞赛必备之快读快写(超详细解读)
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{
return(int)st.nval;
}
public String readLine()throws Exception{// 不推荐使⽤
return st.sval;
}
}
下⾯演⽰⼀下这个读类的使⽤
package;
import BufferedReader;
import BufferedWriter;
import InputStreamReader;
import OutputStreamWriter;
import PrintWriter;
import 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{
return(int)st.nval;
}
public String readLine()throws Exception{// 这个不推荐使⽤
return st.sval;
}
}
输⼊
32
adfa
23
AAA
输出
32adfa23AAA55
由输⼊输出知道,值都是读进来的。
注意
nextint()方法我们在使⽤StreamTokenizer时⼀般只⽤来处理数字的输⼊,对于字符串不使⽤上⾯的st.sval即上⾯的readLine()⽅法,因为st.sval只会读取字母,对于特殊符号和数字不会读取,读⼊的会是null。
所以如果我们遇到读字符串的还是⽼⽼实实的使⽤BufferedReader。
BufferedReader bf =new BufferedReader(new InputStreamReader(System.in));
好了,看完这篇⽂章后你可以忘记Scanner了。我这⾥就不举例⼦来对⽐Scanner,BufferedReader,StreamTokenizer他们三个的读⼊时间,你只要记住BufferedReader和StreamTokenizer是远远⽐Scanner速度快的。所以咱就忘了他吧。我知道你可能不舍得。但这是我们进步的象征。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。