蓝桥杯自学--1 正常输入输出和快速输入输出
本文主要介绍快速输入输出,正常的输出输出在数据量小的时候还行,大了就拜拜了。推荐使用BufferedReader输入,BufferedWriter输出。因为当输入输出的数据量大于一百万左右就必须使用快速输入输出,不能直接使用Scanner和System.out.print。
1、必知常识
主类名必须是Main,并且交代码时不要加入包名(package),但需要把导入的包加上(import)。如:
// package 包名; 提交时 不加
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
}
}
2、输入输出
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int nu = scan.nextInt(); //int类型
System.out.println(nu);
float fl = scan.nextFloat(); //float类型
System.out.println(fl);
double dou = scan.nextDouble(); //double类型
System.out.println(dou);
String str = scan.next(); //String类型,遇到空格结束
System.out.println(str);
String st = scan.nextLine(); //String类型,读取一行数据,遇到换行结束。类似gets
System.out.println(st);
scan.close();
}
}
3、多组数据输入。使用scan.hasNext。返回值是bool值,作用是当在缓冲区内扫描到字符时,会返回true, 否则会发生阻塞,等待数据输入。
float a,b;
int c;
while(scan.hasNext()){
a = scan.nextFloat();
b = scan.nextFloat();
c= scan.nextInt();
System.out.println(a+" "+b+" "+c);
}
4、输出
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
String s = "asdf";
int a = 123;
System.out.println("234"); //输出并换行
System.out.print(165); //输出不换行
System.out.printf("%d %s",a,s); //输出不换行
cin.close();
}
}
//输出
234
165123 asdf
5、PrintWriter输出
//所需包
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 输出分为两步:
// 1、先通过print()或println()方法把需要输出的内容放入缓冲区,
// 2、然后通过flush()将缓冲区的内容输出到控制台
/* 下面这是IO流包装,直接套用就好*/
PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
out.println("Greater than");/*输出内容*/
out.println("Less than");
out.println("Equal");
out.flush();/*刷新输出缓冲区,把缓冲区的内容输出到控制台。可以自行尝试把这句代码写上和注释掉查看效果。*/
scan.close();
}
本文仅供个人学习使用,参考csdn墨水记忆 原文链接:blog.csdn.net/qq_63593632…