蓝桥杯Java-01.入门必知、正常输入输出和快速输入输出
不要让想得太多毁掉你,行动是打破僵局最好的方法,在你弱小时,只要多做,多尝试,多是错,你才能收获,才能进步,未能到达一定高度之前,迷茫本身,毫无意义。
本文主要介绍竞赛答题入门知识,正常输入输出和快速输入输出的知识
1.必知常识
主类名必须是Main
,并且交代码时不要加入包名(package),但需要把导入的包加上(import)。如:
//package com.zxl.fastinput; 不要package
import java.util.Scanner; //import导包
public class Main {
//主函数名Main
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
}
}
2.输入输出
2.1 正常输入输出
2.1.1单个数据输入
Java中的输入输出无法和c++一样cin通吃,但是和c语言有相似之处
首先需要定义一个Scanner对象接收控制台输入的数据,需要导入包 import java.util.Scanner;
Scanner cin = new Scanner(System.in);
在使用cin.nextXXX()f方法接受各种类型的数据
//1.导包 import 关键字导入Scanner类
import java.util.Scanner;
public class Main { //主函数名Main
public static void main(String[] args) {
//2.创建scanner类接受键盘输入内容
Scanner cin = new Scanner(System.in);
//cin.nextXXX方法接收不同类型的输入内容
int numbers=cin.nextInt(); //int类型 整型
System.out.println(numbers);
float f=cin.nextFloat();// float类型 单精度浮点型
System.out.println(f);
double d=cin.nextDouble();//double类型 双精度浮点型
System.out.println(d);
String s=cin.next(); //String类型 字符串型 遇到空格结束
System.out.println(s);
String str=cin.nextLine(); //String类型 读取一行数据,遇到换行结束,类似gets
//有开就有关
cin.close();
}
}
2.1.2 多组数据输入
多组数据输入。使用cin.hasNext。返回值是bool值,作用是当在缓冲区内扫描到字符时,会返回true, 否则会发生阻塞,等待数据输入。
使用 while + cin.hasNext() 相当于 while(scanf())。和cin.nextXXX()方法类似,cin.hasNextXXX()也有针对不同类型变量的方法。如下:
cin.hasNext():
import java.util.Scanner;
public class demo01 {
public static void main(String[] args) {
/*多组数据类型输入 cin.hashNext()
* 返回值是bool值,作用是当在缓冲区内扫描到字符时,会返回true,
* 否则发生阻塞,等待数据输入
* while+cin.nextNext 相当于while(scanf()) 和cin.nextXXX类似,cin.hashNextXXX()也有针对不同类型变量的方法。
* */
Scanner cin = new Scanner(System.in);
float a,b;
int c;
while (cin.hasNext()){
a=cin.nextFloat();
b=cin.nextFloat();
c=cin.nextInt();
System.out.println(a+" "+b+" "+c);
}
cin.close();
}
}
2.1.3输出
java中往控制台输出的几种常用函数。
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
2.2 快速输入输出
2.2.1输出
BufferedWriter。主要使用 BufferedWriter类中的 write() 类进行输出。会抛出异常。 当数据量大的时候一定要使用这个类进行输出。输出后并不会自动换行。
需要注意的是 write() 不能直接输出int类型, 因为write(int a) 会输出其对应的ASCii码的字符 ,比如输出 65 会
显示 A。
import java.io.BufferedWriter;
import