目录
最近看了一些机试题,大多是些很基础的输入输出以及字符的处理,有些东西太基础了反而记不住。现在整理一些常用的关键代码记录如下:
获取输入数据
BufferedReader
通常使用的类与要导入的包
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
获取输入
//通过BufferedReader、InputStreamReader、System.in 来获取输入
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
读取一行内容
//bf.readLine() 来读取一行的内容
while ((str = bf.readLine()) != null)
读取一行字符串中的每一位:
InputStream in = System.in;
int available = in.available()-1;
char[] chars = new char[available];
while (available-- > 0) {
chars[available] = (char) in.read();
}
Scanner
要导入的包为
import java.util.Scanner;
读取一行字符串
Scanner scan = new Scanner(System.in);
String str ="";
if (scan.hasNextLine()) {
str = scan.nextLine();
}
获取下一个int数据
// 读取下一个整数,默认用空格做分割
Scanner scan = new Scanner(System.in);
int i = 0;
float f = 0.0f;
System.out.print("input int:");
while(scan.hasNextInt()) {
//可设置分割方式
//scan.useDelimiter(" |,|\\.");
// 判断输入的是否是整数
i = scan.nextInt();
// 接收整数
System.out.println("int: " + i);
}
获取下一个float数据
if (scan.hasNextFloat()) {
// 判断输入的是否是小数
f = scan.nextFloat();
// 接收小数
System.out.println("float:" + f);
} else {
// 输入错误的信息
System.out.println("not float!");
}
数据转换
字符转整形
//字符转化为整数
int n = Integer.parseInt(str);
整形转为二进制字符串:
Integer.toBinaryString(num)
截取字符串
str.substring(start, start +
8
)
字符数组转字符串
char[] tmp = new char[]{'0','0', '0','0','0', '0','0','0'};
String.valueOf(tmp))
或者:new String (numCharsConvert)
字符串转为字符数组
char [] numChars = numStr.toCharArray();
数组排序:
Arrays.sort(result);
数学函数
N次方
Math.pow(a,3) 即等于求a的3次方。Math方法直接是在Java.lang 包下的
开平方:Math.sqrt(num)
一个demo
//要导入的类;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
//通过BufferedReader、InputStreamReader、System.in 来获取输入
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String str;
//bf.readLine() 来读取一行的内容
while ((str = bf.readLine()) != null) {
boolean[] stu = new boolean[1001];
StringBuilder sb = new StringBuilder();
//字符转化为整数
int n = Integer.parseInt(str);
for (int i = 0; i < n; i++) {
stu[Integer.parseInt(bf.readLine())] = true;
}
for (int i = 1; i < 1001; i++) {
if (stu[i]) {
sb.append(i).append("\n");
}
}
//删除指定位置处的字符
sb.deleteCharAt(sb.length() - 1);
System.out.println(sb.toString());
}
}
}