蓝桥杯最后备战
主要知识点
一、 java输入输出
1.基础输入
Scanner in =new Scanner(System.in); // 声明接收数据的对象,之后用这个in去接收各种类型的数据
int a=in.nextInt();
double b=in.nextDouble();
需要注意的有
- 遇到空格就会停止
System.out.println(in.next());// 如在控制台中输入,hello word!
// 输出结果为--> hello
- 遇换行符停止
System.out.println(in.nextLine());// 在控制台中输入
/*
学习java,
天天上上
*/
// 输出(顺带去掉了换行符)--> 学习java,
- 在两者混合使用的时候
String s1 = in.next();
String s2 = in.nextLine(); // 输入hello word
// 输出 s1 --->hello s2-- word;
// 即前半部分被next接收了,而next遇到空格丢弃了后半部分,到了 nextLine 后收到后半部分
2. 高级输入
- hasNext() 只有在接收到输入控制台输入字符串时返回true值,否则就会发生阻塞,等待用户输入。常用法如下
import java.util.Scanner;
public class Main1 {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
while(in.hasNext()){
String a = in.nextLine();
String b = in.nextLine();
System.out.println(a+" "+b);
if(a.equals("end"))
break;
}
}
}
- 在例子中由于 hasNext 不会返回 false,所以只有通过内部输入符合条件的值从而 break才能推出循环
- 值得注意的是如果在控制台中什么都没输入的话,直接回车,则不会执行while代码块里边的内容
//其他同规则代码方法
in.hasNext()
in.hasNextInt() // 控制台不输入数字则不执行代码块内容,并直接退出循环
in.hasNextDouble() // 控制台不输入浮点数数据,不执行代码块内容,并直接退出循环
- 快速输入
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
此类对象有如下方法:
方法 | 作用 |
---|---|
int read() | 读取单个字符串 |
int read(char[] cbuf,int off ,int len) | 将字符串读入数组的某 |
long skip(long n) | 跳过某个字符 |
void close() | 关闭该流并释放与之关联的所有资源 |
boolean ready() | 判断此流是否准备好被读取 |