介绍Java版ACM标准输入输出以及性能优化
1.输入
- 类的形式
import java.io.BufferedInputStream;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//两种输入流的方式都可以
Scanner in=new Scanner(System.in);
Scanner in=new Scanner(new BufferedInputStream(System.in));
while (in.hasNext()){
int a=in.nextInt();
int b=in.nextInt();
System.out.println(a+b);
}
}
}
- 具体输入的方法
读一个整数: int n = in.nextInt();
读一个字符串:String s = in.next();
读一个浮点数:double t = in.nextDouble();
读一整行: String s = in.nextLine();
判断是否有下一个输入
in.hasNext()
in.hasNextInt()
in.hasNextDouble()
in.hasNextLine()
- 关闭输入流的方法
Scanner in=new Scanner(System.in);
//关闭流的方法
in.close();
2.输出
- 标准化的输出
System.out.print(); //不换行
System.out.println(); //换行
System.out.format(); //格式化输出
System.out.printf(); //格式化输出
System.out.format();演示
int year=2020;
System.out.format("%d%n",year); //直接打印数字2020加换行,%n是换行
System.out.format("%8d%n",year); //总长度为8,默认是右对齐的方式
System.out.format("%-8d%n",year); //总长度为8,默认是左对齐的方式
System.out.format("%08d%n",year); //总长度是8,不够补0
System.out.format("%,8d%n",year*10000);//千位分隔符
System.out.format("%.5f%n",Math.PI); //保留5位小数
结果
System.out.format();类似
- 格式化输出
int x=2020;
DecimalFormat fd = new DecimalFormat("#.00#");
DecimalFormat gd = new DecimalFormat("0.000");
System.out.println("x =" + fd.format(x));
System.out.println("x =" + gd.format(x));