Math类函数使用时无需导入,因为它在java.lang包中,已经默认隐式导入。
1.1 三角函数
r是弧度单位,d是角度单位,a是一定范围内的常数
| 方法 | 描述 |
|---|---|
Math.sin(r) |
正弦 |
Math.cos(r) |
余弦 |
Math.tan(r) |
正切 |
Math.toRadians(d) |
角度转弧度 |
Math.toDegrees(r) |
弧度转角度 |
asin(a) |
反三角正弦 [-Π/2,Π/2] |
acos(a) |
反三角余弦 [0, Π] |
atan(a) |
反三角正切 [-Π/2,Π/2] |
1.2 指数函数
| 方法 | 描述 |
|---|---|
Math.pow(a, b) |
a^b^ |
Math.sqrt(x) |
√x |
Math.log(x) |
㏑x |
Math.log10(x) |
log10(x) |
Math.exp(x) |
e^x^ |
1.3 取整函数
| 方法 | 描述 |
|---|---|
Math.ceil(x) |
向上取整最接近的整数,返回值为 double |
Math.floor(x) |
向下取整最接近的整数,返回值为 double |
Math.rint(x) |
取整最接近的整数。若距离相等则偶数的整数作为返回值,类型最后为 double |
Math.round(x) |
若x为float,则返回(int)Math.floor(x+0.5);若为double则返回(double)Math.floor(x+0.5) |
1.4 比较函数
a,b为
int,long,float,double
| 方法 | 描述 |
|---|---|
Math.min(a,b) |
返回最小值 |
Math.max(a, b) |
返回最大值 |
Math.abs(x) |
返回绝对值 |
字符直接量被单引号括起来,字符串被双引号括起来。
2.1 Unicode 和 ASCII码
将字符映射到它的二进制形式的过程称为编码。
一个16位Unicode码占两个字节,以 \u 表示的4位十六进制表示,范围从 \u0000 到 \uffff。
大多数计算机采用 ASCII码(美国标准信息交换码),它是表示所有大小写字母、数字、标点符号和控制字符的8位编码表。
对于 char 型数据,也可以用对应 ASCII 码或 Unicode 码来表示。
// 以下3条语句等价
char a = 'A';
char a = '\u0041';
char a = 65;2.2 转义字符
在输出一些特殊的字符比如'',"",\等可用转移符反斜杠 \接字符的形式组成转移字符。
| 转移符号 | 意义 |
|---|---|
\" |
" |
\' |
' |
\\ |
\ |
\n |
换行符 |
\t |
Tab制表 |
\r |
回车符 |
\b |
退格符 |
2.3 字符型数据与其他数据的转换
char 型数据可以转换成任意一种数值类型。浮点数转换成 char 型时需要先转为 int 型。
所有数值操作符都可以用在 char 型数据上。``char型与数值型则char` 型转换为数值型,与 `String` 型则与字符串相连。
2.4 字符的比较和测试
两个字符可以根据其 Unicode 值通过关系操作符进行比较。
| 字符 | 十进制 |
|---|---|
'A' ~ 'Z' |
65 ~ 90 |
'a' ~ 'z' |
97 ~ 122 |
'0' ~ '9' |
48 ~ 57 |
使用 java.lang 包中的 Charactor 类提供的方法进行字符测试
| 方法 | 描述 |
|---|---|
Charactor.isDigit(c) |
若c为数字字符,返回true |
Charactor.isLetter(c) |
若c为字母字符,返回true |
Charactor.isDigitOrLetter(c) |
若c为数字或字母字符,返回true |
Charactor.isLowerCase(c) |
若c为小写字母字符,返回true |
Charactor.isUpperCase(c) |
若c为大写字母字符,返回true |
Charactor.toLowerCase(c) |
返回c的小写形式 |
Charactor.toUpperCase(c) |
返回c的大写形式 |
3.1 字符串
字符串是用双引号包裹起来的一串字符序列,属于引用数据类型。
3.2 实例方法与静态方法
只能通过从一个具体实例来调用的方法叫做 实例方法 ,有的有参数有的无。例如String对象中的字符串处理方法。
调用实例方法的方式:ref.methodName(args) (参数可有可无,可一可多)
非实例化方法叫做 静态方法,例如 Math 类和 Charactor 类中的方法。
调用静态方法的方式:className.methodName(args)
3.3 String对象中的方法
str为实例的字符串,
index为字符串索引
| 实例方法 | 描述 |
|---|---|
str.length() |
返回字符串长度 |
str.charAt(index) |
返回指定索引位置的字符 |
str.concat(str1) |
连接指定字符 |
str.toUpperCase() |
返回一个全部大写的新字符串 |
str.toLowerCase() |
返回一个全部小写的新字符串 |
str.trim() |
返回一个去掉两边空白的新字符串 |
3.3.1求字符串长度
String str = "message";
int l = str.length(); // l == 73.3.2 从字符串中获取字符
确保不越界:
index <= str.length() - 1
String str = "message";
char ch = str.charAt(1); // ch == 'e'3.3.3 连接字符串
- 使用
str.concat(s1)连接 - 使用
+连接 - 使用
+可连接数值类型和String类型
3.3.4 字符串的转换
str.toUpperCase() 将字符串全部转换为大写,str.toLowerCase() 将字符串全部转换为小写;
str.trim() 清除字符串两端的空白字符
空白字符:' ',\n, \t, \r, \b
3.3.4从键盘读取字符串
-
使用
Scanner对象的next()方法读取以空白字符结束的字符串:import java.util.Scanner; Scanner input = new Scanner(System.in); String str = input.next();
-
使用
nextLine()读取以回车键为结束的字符串,即读取一整行内容:import java.util.Scanner; Scanner input = new Scanner(System.in); String str = input.nextLine();
3.4 字符串的比较
str, str1为字符串
| 方法 | 描述 |
|---|---|
str.equals(str1) |
若相等,返回true |
str.equalsIgnoreCase(str1) |
若相等,返回true,不区分大小写 |
str.compareTo(str1) |
返回大于0、等于0、小于0的整数,代表str是否大于、等于、小于str1 |
str.compareToIgnoreCase(str1) |
同上,且不区分大小写 |
str.startsWith(prefix) |
若str以特定前缀prefix 开始,返回true |
str.endsWith(suffix) |
若str以特定前缀prefix 开始,返回true |
str.contains(s1) |
若str1是str的子字符串,返回true |
3.4.1 比较字符串是否相等
==只能比较 str 与 str1 是否指向同一个对象,不能比较内容。
- 使用
str.equals(str1)判断两字符串是否相等,相等返回true,否则false str.compareTo(str1)也可判断,若返回0则相等
3.4.2 字符串比较大小
compareTo()、compareToIgnoreCase() 比较的返回值实际是字符串按照从前到后的顺序对应字符的 Unicode 值之差。
String str = "abcd";
String str1 = "abcm";
int diff = str.compareTo(str1); // diff == -9,str < str13.5 获得子字符串
-
提取字符串中某个指定字符串:
str.charAt(index) -
获得子串
方法 描述 str.substring(startIndex)返回从 startIndex到字符串结尾。str.substring(startIndex, endIndex)返回从 startIndex到endIndex - 1位置,范围前闭后开。 -
寻找指定字符串
实参
ch可以是字符串str方法 描述 str.indexOf(ch)返回str中出现的第一个ch的索引;若无则返回 -1str.indexOf(ch, fromIndex)返回在fromIndex之后(包括fromindex) 出现的第一个ch的索引;若无返回 -1str.lastIndexOf(ch)返回str中最后一次出现的ch的索引;若无返回 -1str.lastIndexOf(ch, fromIndex)返回fromIndex之前最后一次出现的ch的索引;若无返回 -1
3.6 字符串与数字的互转
-
数值型字符串转数字
//Integer类和Double类都包含在java.lang包中 int intValue = Integer.parsInt(intStirng); double doubleValue = Double.parseDouble(doubleString);
-
数值转字符串
int number = 12345; String s = number + "";
使用 System.out.printf() 进行格式化输出
4.1 公式:%m.nf
- m:域宽度
- n:精度
- f:转换码(格式标识符)
4.2 语法:System.out.printf(format, item1, item2, ... , itemk)
format 是由子串和格式化标识符构成的字符串
int i = 20;
double d = 123.4567;
System.out.printf("i is %d, d is %f", i, d);
// i is 20, d is 123.4567004.3 常用格式化标识符
| 标识符 | 输出 | 举例 |
|---|---|---|
%b |
布尔值 | %6b 表示在true前面有2个空格,在false前面有1个空格 |
%c |
字符 | %4c 表示在字符前面加3个空格 |
%d |
十进制整数 | %5d :若整数宽度小于5,则在整数前面补充空格;若大于则整数增加宽度 |
%e |
标准科学技术法 | %10.2e : 浮点数部分宽度为12,包括小数点和前后的数字;是否补充空格同上 |
%f |
浮点数 | %10.2f : 包留小数点后2位,整数部分宽度为7位;是否补充空格同上 |
%s |
字符串 | %10f字符串条目宽度为10,若不够则自动增加宽度,若多余则补充空格 |
注意:
-
若一个条目需要更多宽度,则自动增加宽度;若指定宽度有余,则补充空格;
-
默认情况下,条目中的内容都是向右对齐的
在格式标识符前面加一个
-号 (-%10s)表示向左对齐 -
数据类型与格式化标识符要严格对应