Math类
Math 类包含了用于执行基本数学运算的属性和方法。
方法都被定义为 static 形式,通过 Math 类可以直接调用。
public class Test{
public static void main(String[] args) {
System.out.println(Math.abs(-5));
}
}
abs
返回绝对值。
ceil
返回大于等于给定参数的的最小整数。
floor
返回小于等于给定参数的最大整数。
rint
返回与参数最接近的整数。
round
返回四舍五入的整数。同 Math.floor(x+0.5) 。
min
返回两个参数中的最小值。
max
返回两个参数中的最大值。
exp
返回 e 的参数次方。
log
返回自然对数。
pow
返回第一个参数的第二个参数次方。
sqrt
返回算术平方根。
三角函数sin
cos
tan
asin
acos
atan
atan2将笛卡尔坐标转换为极坐标,返回极坐标的角度值。
角度toDegrees弧度转角度。
toRadians角度转弧度。
random
返回一个 (0, 1] 的随机数。
Character类
isLetter
返回是否是一个字母。
isDigit
返回是否是一个数字字符。
isWhitespace
返回是否是一个空白字符。
转义序列中以下四种符号会被判定为 true :\t tab
\n 换行
\r 回车
\f 换页
isUpperCase
返回是否是一个大写字母。
isLowerCase
返回是否是一个小写字母。
toUpperCase
字母转大写。
toLowerCase
字母转小写。
toString
转成字符串。
数组
声明数组
推荐:
dataType[] arrayRefVar;
虽然 dataType arrayRefVar[]; 也能用,但不推荐。
创建数组
arratRefVar = new datatype[arraySize];
一共做了两件事:在内存中申请空间
把数组空间的引用赋值给数组
声明和创建可以放在一个语句内:
dataType[] arrayRefVar = new datatype[arraySize];
也可以这么写:
dataType[] arrayRefVar = {value0, value0, ..., valueN};
理所当然,索引从 0 开始。
访问数组
下标就行: arrayRefVar[index] 。
多维数组
二维数组可以看作由一维数组组成的数组。
以此类推……
以二维为例,声明的方式为:
int[][] a = new int[2][3];
但是
int[][] a = new int[2][];
a[0] = new int[4];
a[1] = new int[3];
也是被允许的。
Arrays类
都是静态的,可以方便地操作数组。
binarySearch
二分查找。
使用前要先对数组排序。
equals
两个数组元素数量相等且对应元素相等。
fill
将某值填充入数组的每一个元素中。
sort
升序排序。
降序可以用 Collections.reverseOrder() 。
可以自定义规则,要写个 compare 接口。
import java.util.Arrays;
import java.util.Comparator;
class Cmp implements Comparator {
public int compare(Integer num1, Integer num2) {
return num2 - num1;
}
}
public class test {
public static void main(String[] args) {
Integer[] a = { 123, 23, 53, 21, 212, 34, 23 };
Comparator cmp = new Cmp();
Arrays.sort(a, cmp);
for (int b : a)
System.out.print(b + " ");
}
}
这种情况只能对类排序(基本类型不行)。
实在不行就自己实现一个排序算法吧。
Java字符串
java 的字符串可以通过 + 拼接。
通过 format 方法可以实现格式化字符串。
Java 的字符串是不可变的,每次改变都会申请新的空间。
如果需要对字符串做很多修改,那么应该选择使用 StringBuffer 或 StringBuilder 类。
charAt
获取索引处字符
concat
字符串连接
endsWith
是否以某字符串为结尾
getBytes
转成字节数组
hashCode
哈希值
indexOf
子字符(串)在其中的索引
lastIndexOf
子字符(串)在其中的最后一个索引
lenth
长度
matches
是否匹配某正则表达式
replace
替换某字符为新字符
replaceAll
用某字符串替换所有匹配正则表达式的子字符串
replaceFirst
用某字符串替换第一个匹配正则表达式的子字符串
split
用正则表达式拆分字符串
startWith
是否以某字符串为起始
toCharArray
转为 char 数组
toLowerCase
转小写
toUpperCase
转大写
trim
忽略前后空白
isEmpty
是否为空串
Java StringBuffer&StringBuilder
与 String 类不同,他们能够多次修改。
StringBuilder 线程不安全,性能强些。
StringBuffer 线程安全,性能差些。
单线程情况下建议 StringBuilder 。
String 类有的方法他们(大概)也都有。
append
追加字符串
delete
删除区间