1.Scanner 类
例:Scanner sc = new Scanner(System.in);
sc.useDelimiter("\n"); // 把回车当作分隔符,Scanner 使用空白符作为分隔符;
hasNextXxx(); 是否还有下一个输入项,判断字符串,直接使用 hasNext()
nextXxx(); 获取下一个输入项;
行读取
boolean hasNextLine(); 返回输入源是否还有下一行;
String nextLine(); 返回输入源中下一行的字符串;
读取文件输入
Scanner sc = new Scanner(new File("ScannerFileTest.java"));
2.System 类
类变量:标准输入,标准输入,错误输出;
类方法:访问环境变量,系统属性(native 方法),加载文件和动态链接库;
System.getenv(); 获取系统环境变量
System.getProperties(); 获取所有系统属性
System.getProperty(); 获取特定属性;
System.currentTimeMillis(); 获取当前时间:毫秒
System.nanoTime(); 获取当前时间:纳秒
System.identityHashCode(Object x)方法 返回指定对象的精确 hashCode 值
3.Runtime 类
getRuntime(); 获取与之关联的 Runtime 对象;
load(String filename); 加载文件;
loadLibrary(String libname); 加载动态链接库;
4.Object 类
boolean equals(Object obj) 判断指定对象与该对象是否相等;
protected void finalize() 清理资源;
Class<?> getClass() 返回该对象的运行时类;
int hashCode() 返回该对象的 hashCode 值;
String toString() 返回该对象的字符串表示;
wait(),notify(),notifyAll() 控制线程的暂停和运行;
clone() 帮助对象实现自我克隆;
1.自定义类实现 Cloneable 接口;接口里无任何方法;
2.自定义类实现自己的 clone() 方法;
3.实现 clone() 方法时通过 super.clone();调用 Object 实现的 clone() 方法来得到该对象的副本,并返回该副本;
只克隆所有成员变量值,不会对引用类型的成员变量值所引用的对象进行克隆;
Objects 工具类
空指针安全
5.String StringBuffer StringBuilder 类
String 类是不可变类;
StringBuffer 对象代表一个字符序列可变的字符串;
StringBuilder 性能略高;
String 类
1.String(); 0 个字符串
2.String(char[] value, int offset, int count); 将指定的字符数组从 offset 开始,长度为 count 的字符元素连缀成字符串;
3.String(String original); 根据字符串直接量创建对象;
4.String(StringBuffer buffer);
5.String(StringBuilder buider);
6.char charAt(int index); 获取字符串中指定位置; 0~length()-1;
7.int compareTo(String anotherString); 相等返回 0,不同返回 字符差,长度差;
8.String concat(String str); +
9.boolean contentEquals(StringBuffer sb); 进行比较,包含字符序列相同返回 true;
10.static String copyValueOf(char[] data); 将字符数组连缀成字符串;
11.static String copyValueOf(char[] data, int offset, int count);
12.boolean endsWith(String suffix); 返回该 String 对象是否以 suffix 结尾;
13.boolean equals(Object obj);
14.boolean equalsIgnoreCase(String str); 忽略字符大小写;
15.void getChar(int srcBegin, int srcLast, char[] dst, int disBegin);
16.int indexOf(int ch); ch字符在该字符串中第一次出现的位置;
17.int indexOf(int ch, int fromIndex); ch字符在该字符串中从 fromIndex 第一次出现的位置;
18.int indexOf(String str);
19.int indexOf(String str, int fromIndex);
20.int lastIndexOf(int ch); ch字符在该字符串中最后一次出现的位置;
21.int lastIndexOf(int ch, int fromIndex); ch字符在该字符串中从 fromIndex 最后一次出现的位置;
22.int lastIndexOf(String str);
23.int lastIndexOf(String str, int fromIndex);
24.int length(); 返回当前字符串长度;
25.String replace(char oldChar, char newChar); 将字符串第一个 oldChar 替换为 newChar;
26.boolean startsWith(String prefix); 该 String 对象是否以 prefix 开始;
27.boolean startsWith(String prefix, int toffset); 该 String 对象从 toffset 算起是否以 prefix 开始;
28.String substring(int beginIndex); 获取从 beginIndex 位置开始到结束的子字符串;
29.String substring(int beginIndex, int endIndex); 获取从 beginIndex 位置开始到 endIndex 的子字符串;
30.char[] toCharArray(); 将 String 对象转换成 char 数组;
31.String toLowerCase(); 将字符串转换成小写;
32.String toUpperCase(); 将字符串转换成大写;
33.static String valueOf(X x); 将基本类型转换为 String 对象;
6.Math 类
类变量: PI 和 E
类方法:
三角运算:
toDegrees(); 弧度转角度;
toRadians(); 角度转弧度;
acos(); 反余弦;
asin(); 反正弦;
atan(); 反正切;
cos(); 三角余弦;
cosh(); 双曲余弦;
sin(); 正弦;
sinh(); 双曲正弦;
tan(); 三角正切;
tanh(); 双曲正切;
atan2(); 转极坐标;
取整运算:
floor(); 小于目标数的最大整数;
ceil(); 大于目标数的最小整数;
round(); 四舍五入取整;
乘方,开方,指数运算:
sqrt(); 平方根;
cbrt(); 立方根;
exp(); e的n次幂;
hypot(); sqrt(x2+y2);
pow(); 计算乘方;
log(); 乘方;
log10(); 自然对数;
符号相关:
abs(); 绝对值;
copySign(); 返回带有第二个浮点数符号的第一个浮点数参数;
signum();
大小相关:
max();
min();
random(); 伪随机数,0~1;
7.Random 类 ThreadLocalRandom
Random 构造器:
默认种子;
显式传入 long 型整数种子;
Random rand = new Random();
rand.nextXxx();
推荐:
Random rand = new Random(System.currentTimeMillis());
ThreadLocalRandom
ThreadLocalRandom rand = ThreadLocalRandom.current();
8.BigDecimal 类
BigDecimal(String val); 优先使用;
BigDecimal.valueOf(double value);
add(); +
subtract(); -
multipy(); *
divide(); /
pow();
9.Data 类
Data();
Data(long data);
long getTime();
void setTime(long time);
10.Calendar 类
抽象类
子类 GregorianCalendar 类;
静态 getInstance() 方法,TimeZone,Locale 类获取实例;
与 Data 转换:
Calendar calendar = Calendar.getInstance();
Data data = calendar.getTime();
calendar.setTime(data);
方法: field 是类变量,Calendar.YEAR Calendar.MONTH....
void add(int field, int amount); 能进位,修正
int get(int field);
int getActualMaximun(int field); 返回指定日历字段拥有的最大值;
int getActualMinimun(int field); 返回指定日历字段拥有的最小值;
void roll(int field, int amount); 不能进位,修正
void set(int field, int value);
void set(int year, int month, int data);
void set(int year, int month, int data, int hour, int minute, int second);
关闭容错性:
setLenient(false);
11.正则表达式
合法字符: x \0mnn \xhh \uhhhh \t \n \r \f \a \e \cx
特殊字符:
$ 匹配一行结尾;
^ 匹配一行开头;
() 标记子表达式开始结束位置;
[] 中括号表达式开始结束位置;
{} 标记前面子表达式的出现频度;
* 指定前面子表达式可以出现零次或多次;
+ 指定前面子表达式可以出现一次或多次;
? 指定前面子表达式可以出现零次或一次;
. 匹配除换行符 \n 之外任何单字符;
\ 转义下一个字符;
| 指定两项之间任选一项;
预定义字符:(通配符)
. 匹配任何字符;
\d 匹配 0~9 数字;
\D 匹配非数字;
\s 匹配空白符;
\S 匹配非空白符;
\w 匹配单词字符;
\W 匹配非单词字符;
方括号表达式:
枚举 [abc]
范围 - [a-f]
求否 ^ [^abc]
与运算 && [a-z&&[def]]
并运算 [a-d[m-p]]
中文字符 [\\u0041-\\u0056]
圆括号表达式:
(|)
边界匹配符:
^ 行的开头;
$ 行的结尾;
\b 单词的边界;
\B 非单词的边界;
\A 输入的开头;
\G 前一个匹配的结尾;
\Z 输入的结尾;仅用于最后的结束符;
\z 输入的结尾;
数量标识符:
贪婪模式(Greedy) 勉强模式(Reluctant) 占用模式(Possessive)
X? X?? X?? X 表达式出现零次或一次;
X* X*? X*? X 表达式出现零次或多次;
X+ X+? X+? X 表达式出现一次或多次;
X{n} X{n}? X{n}? X 表达式出现n次;
X{n,} X{n,}? X{n,}? X 表达式最少出现n次;
X{n,m} X{n,m}? X{n,m}? X 表达式最少出现n次,最多出现m次;
使用正则表达式:
Pattern 和 Matcher 多个 Matcher 对象可共享一个 Pattern 对象;
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaab");
boolean b = m.matches();
boolean b = Pattern.matches("a*b", "aaaab");
Matcher 方法:
find() 返回目标字符串中是否包含与 Pattern 匹配的字串;
group() 返回上一次与 Pattern 匹配的子串;
start() 返回上一次与 Pattern 匹配的子串在目标字符串中的开始位置;
end() 返回上一次与 Pattern 匹配的子串在目标字符串中的开始位置+1;
lookingAt() 返回目标字符串前面部分与 Pattern 是否匹配;
matches() 返回整个目标字符串与 Pattern 是否匹配;
reset() 将现有 Matcher 对象应用于一个新的字符序列;