蓝桥杯复习1

一般输入输出

输入:使用 Scanner 类进行

  1. java.util.Scanner 包中,定义一个可以在控制台的键盘输入设备中接收数据。
  2. 需要把输入的数据中放入一个内存中去,或缓存或硬存,这就要求要对接收到的数据识别数据类型。一般是使用对象名的 next 系列方法来存住数据。
  3. 代码展示
Scanner in = new Scanner(System.in);//声明定义

double doubledata = in.nextDouble();
int intdata = in.nextInt();
String s1data = in.next();
String s2data = in.nextLine();
  1. 备注:
    – in.next() 从缓冲区接收字符遇到空格后停止。 相当于 cin 和 scanf
    – in.nextLine() 从缓冲区接收字符,并且接收空格,遇到换行才停止,并且会自动舍弃换行。 相当于 gets()
  2. hasNext()方法
    – in.hasNext()的返回值是bool值,作用是当在缓冲区内扫描到字符时,会返回true, 否则会发生阻塞,等待数据输入;另外,in.hasNext()是不会返回false的。
    – 所以遇到多组输入时,可以使用 while + in.hasNext() 相当于 while(scanf())
    – 从描述上来说,它是一种等待型的巡查缓流线。

输出:使用系统控制台的普通输出

  1. 一般是直接使用系统控制台的 print 系列;一般就①格式输出,继承了C与C++的格式;②续换行;③不换行。
  2. 代码展示
int a = 2;
System.out.print(a);
System.out.println(a);//会换行
System.out.print("a's value: "+ a);
System.out.printf("%d",a); 

快速输入输出

BufferedReader 和 BufferedWriter

  1. 源自包 java.io.*
  2. BufferedReader 定义说明
BufferedReader in = new BufferedReader(new InputStream(System.in));
  1. BufferedWriter 定义说明
BufferedWriter out = new BufferedWriter(new OutputStream(System.out));
  1. 相关API
成员方法
int read()                                  读取单个字符。
int read(char[] cbuf, int off, int len)     将字符读入数组的某一部分。
String readLine()                           读取一个文本行。
long skip(long n)                           跳过字符。
boolean ready()                             判断此流是否已准备好被读取。
void close()                                关闭该流并释放与之关联的所有资源。
void mark(int readAheadLimit)               标记流中的当前位置。
boolean markSupported()                     判断此流是否支持 mark() 操作(它一定支持)。
void reset()                                将流重置到最新的标记。

主要使用read()readLine()
成员方法
String s = in.read() // 读入一个字符 可读入空格回车 但不抛弃回车
String s1 = in.readLine(); // 读入一行 可读入空格可读入回车 但会将回车抛弃
string s2[] = in.readLine().Split(" "); // 使用Split通过空格分割读入的一行字符串,存在s2中
/*需要注意的是 在windows中按一下回车键 一共有两个字符 "\n\r"  
而read()只能读取一个字符所以如要要用read来达到吸收回车的目的,
需要用两个read();  如果用readLine()的话会将"\n\r"全部吸收, 
所以只需要一个readLine()来吸收回车。*/

// write() 不能直接输出int类型
int a = 65;
out.write(a + "\n");
out.write(Integer.toString(a));
out.flush();
 
//输出:
//65
//65

实例:

import java.io.*;
import java.util.*;
 
 
public class Main{
    static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    static BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
    public static void main(String[] args) throws IOException{
        //测试writr 不能直接输出int类型
    	int a = 65;
        out.write(a);
        out.write("\n");
    	out.write(a + "\n");  // 使用 + 号拼接个字符串 使参数整体为一个字符串 
        out.write(Integer.toString(a)); // 输出a的字符串形式
        out.write("\n");
       
        //测试 read() 和  readLine();
        int b = in.read();   // read()只读取一个字符
        int c = in.read();   // 吸收 \n
        int x = in.read();   // 吸收 \r
       // String e = in.readLine();
        String d = in.readLine();
        out.write("\n");
        out.write(b + "\n");
        out.write(c + "\n");
        out.write(x + "\n");
        out.write(d + "\n");
        //out.write(e);
        out.flush();
    }
}

数据类型(最常用)

数组

  1. 定义形式:
int[] arr = new int[100];
int[] arr1 ={a1,b1,c1};
int arr2[];  arr2 = new int[100];
Arrays.fill(int[] arr, int x); //将arr内的每个元素赋值为x
  1. 数组的拷贝
    ① b = a.clone();
    ② System.arraycopy(soure[],begin_s,target[],begin_t,len);
    ③ b = Arrays.copyOf(source[], len);
    ④ b = Arrays.copyOfRange(source[], begin, end);//copy from begin to end-1

String

– String 定义方式形如: String s1 = “qwe”;
– 因为String是一个类, 所以也可以通过构造函数初始化, 形如 String s2 = new String(“asd”);
– 注意, 通过第一种方式创建字符串对象,内存分配在“常量池” 中。在常量池中数据是共享的, 当存在qwe这个常量时,如果再 String s2 = “qwe”; 时,此时JVM不会创建新的字符串对象,而是会让 s2指向qwe这个常量的地址,也就是说 s1和s2的内存地址是相同的。
– 对于第二种方式,每创建一个字符串对象,都会在堆区重新开辟一个空间保存字符串常量。

功能符以及循环结构和分支结构

这部分内容比较基础基础基础。
具体参见

函数(方法)、类和对象

函数

  1. 函数的结构大致也就如下:函数头,代码块,返回值。
  2. 修饰符:public , static , private …
    ①一般来说 public 是公用意义,以public修饰的函数可以被其它类其他函数直接调用。
    ②对于 java 来说,并无全局变量的概念。这就以 static 充当了。但是在 main 函数外修饰。

类与对象

一个java文件可以包含很多个类,但只能有一个public 类, main函数也在其中。
类可以在类内创建,也可以在类外创建, 类内创建称为内部类,类外创建称为外部类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值