java快读快写
某为笔试经常卡输入输出,什么都不写光输入输出就能超时;
传统方式:
Scanner s=new Scanner(System.in);
while(s.hasNext()){
int a=s.nextInt();
System.out.println(a);
}
弊端:超时,会发生cpu溢出;
快读快写:
StreamTokenizer s=new StreamTokenizer(new InputStreamReader(System.in));
s.whitespaceChars(',',',');
while(s.nextToken()!=StreamTokenizer.TT_EOF){
int a = (int)s.nval;
System.out.println(a);
}
whitespacechars用来设置分割符号,默认是空格;
每一次读取之前都需要使用s.nextToken;
读取只有s.nval和s.sval前者读数字,后者读字符串;需要强转,但是字符默认只支持数字、字符汉字;
使用 wordChars('A', 'Z')添加;
BufferedReader b=new BufferedReader(new InputStreamReader(System.in));
PrintWriter r=new PrintWriter(new OutputStreamWriter(System.out));
String p;
if(( p=b.readLine())!=null){
r.println(p);
// System.out.println(p);
}
r.flush();
按照行来进行读取的时候,可以这么做,但是需要手动split;
参考: