蓝桥杯自学1

248 阅读2分钟

蓝桥杯自学--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…