【蓝桥杯】Java组必备API类
【蓝桥杯】Java组必备API类
输入和输出
输入
Scanner s = new Scanner(System.in); //声明一个从控制台中读入数据的对象
int x = s.nextInt();
double x = s.nextDouble();
String x = s.next(); //无法读入空格
String x = s.nextLine(); //可以读入空格,遇到换行停止while(s.hasNext()) { //hasNext() 判断还有没有读入值 相当于while(scanf())//如果有字符,返回true,否则阻塞//hasNext()不会返回false
}
s.hasNextInt(); //判断输入是否为int,是则返回,否则阻塞
s.hasNextDouble(); //判断输入是否为double,是则返回,否则阻塞
输出
System.out.println();
System.out.print();
System.out.printf(); //格式化输出
prinf()函数与C++中的prinf相同
print()和println()的区别是println()换行
封装输入和输出
通过重写函数的形式来缩写输入和输出,具体情况如下所示
输入
static int gtInt() {int x = sc.nextInt();return x;
}
输出
static void print(int x) {System.out.print(x);
}static void println(int x) {System.out.println(x);
}
快速读写
构造:
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter w = new BufferedWriter(new OutputStreamWriter(System.out));
int x = r.read(); //读取一个字符并将其转换为UTF-8的值
eg: 输入123213123,x只能读取到1
String x = r.readLine(); //读取一行的值
String[] x = r.readLine().split(' '); //分割字符形成字符串
需要注意的是 在windows中按一下回车键 一共有两个字符 “\n\r” 而read()只能读取一个字符所以如要要用read来达到吸收回车的目的,需要用两个read(); 如果用readLine()的话会将"\n\r"全部吸收 , 所以只需要一个readLine()来吸收回车
w.write(x);
w.write("\n");
w.flush();
w.write(Integer.toString(x)); //输出int型变量
需要注意的是 write() 不能直接输出int类型, 因为write(int a) 会输出其对应的ASCii码的字符
eg:write(65); => A
由于java是面向对象的语言,所以这里将快读和快写封装成类比较好用一些。
快读类
StreamTokenizer读取字符类型,而BufferedReader读取字符串。这里买呢StreamTokenizer也可以读取字符串,但是不会读取特殊符号和数字,所以我们最好用BufferedReader读取。
static class FastRead {StreamTokenizer streamTokenizer; //读取数字BufferedReader bufferedReader; //读取字符串public FastRead() {streamTokenizer = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));br = new BufferedReader(new InputStreamReader(System.in));}int gtInt() throws IOException {streamTokenizer.nextToken();int x = (int) streamTokenizer.nval;return x;}long gtLong() throws IOException {streamTokenizer.nextToken();long l = (long) streamTokenizer.nval;return l;}double gtDouble() throws IOException {streamTokenizer.nextToken();double x = streamTokenizer.nval;return x;}String gtString() throws IOException {String s = bufferedReader.readLine();return s;}
}
快写类
快速输出这里我们选用的是printWriter。
static class FastWrite {PrintWriter printWriter;public FastWrite() {printWriter = new PrintWriter(new OutputStreamWriter(System.out));}void print(int x) {printWriter.print(x);}void print(String sc) {printWriter.print(sc);}void print(double x) {printWriter.print(x);}void println(int x) {printWriter.println(x);}void println(double x) {printWriter.println(x);}
}
最新文章