4. 数学函数、 字符和字符串
4.1常用数学函数
Java 在 Math 类中提供了许多实用的方法,来计算常用的数学函数。
这些方法分为三类:三角函数方法(trigonometric method)、指教函数方法(exponent method) 和服务方法(service method)。服务方法包括取整 、求最小值、求最大值、求绝对值和随机方法。除了这些方法之外,Math 类还提供了两个很有用的 double 型常量,PI ( π ) 和 E (自然对数的底)。可以在任意程序中用 Math.PI 和 Math.E 的形式来使用这两个常量。
4.1.1三角函数方法
sin、cos 和 tan 的参数都是以弧度为单位的角度。asin 和 atan的返回值是 - π /2 ~π /2 的一个弧度值,acos 的返回值在 0 到 π 之间。1° 相当于 π /180 弧度,90° 相当于 π /2 弧度,而 30° 相当于 π /6 弧度。
例如:
Math.toDegrees(Math.PI / 2) 返 回 90.0
Hath.toRadians(30)返 回 0.5236 (n/6)
Math.sin(O) returns 0.0
Math.sin(Math.toRadians(270)) 返 回 -1.0
Math,sin(Math.PI / 6) 返 回 0. 5
Math,sin(Math.PI / 2)返 回 1.0
Math.cos(0) 返 回 1.0
Math,cos(Math.PI / 6) 返 回 0.866
Math,cos(Math.PI / 2) 返 回 0
Math.asin(O.5)返 回 0.523598333 (n/6)
Math.acos(O.S) 返回 1.0472 (rt/3)
Math.atanfl.O) 返回 0.78S398 (n/4)
4.1.2 指数函数方法
例如:
Math.exp(l) 返回 2.71828
Math,log(Math.E) 返回 1.0
Math.loglO(lO) 返回 1.0
Math.pow(2, 3) 返回 8.0
Math.pow(3, 2) 返回 9.0
Math.pow(4.5, 2.5) 返回 22.9176S
Math.sqrt(4) 返回 2.0
Math.sqrt(lO.S) 返回 4.24
4.1.3 取整方法
例如:
Math.ceil(2.1) 返回 3.0
Math•ceil(2.0) 返回 2.0
Math.ceil(-2.0)返回 -2.0
Math.ceil(-2.1) 返回 -2.0
Math.floor(2.1) 返回 2.0
Math.floor(2.0) 返回 2.0
Math.floor(-2.0) 返回-2.0
Math.floor(-2.1)返回-3.0
Math.rint(2.1)返回 2.0
Math.rint(-2.0)返回 -2.0
Math.rint(-2.1) 返回-2.0
Math.rint(2.S) 返回 2.0
Math.rint(4.5) 返回 4.0
Math.rint(-2.5)返回 -2.0
Math,round(2.6f) 返回3 // Returns int
Math.round(2.0) 返回2 // Returns long
Math.round(-2.0f) 返回-2 // Returns int
Math.round(-2.6) 返回-3 // Returns long
Math.round(-2.4) 返回-2 // Returns long
4.1.4 min、max 和 abs 方法
min 和 max 方法用于返回两个数(int、long、float 或 double 型)的最小值和最大值。例如,max(4.4,5.0) 返回 5.0, 而 min(3,2) 返回 2。abs 方法以返回一个数(int、long、float 或 double 型)的绝对值。
例如:
Math.max (2, 3) 返回 3
Math.max (2. Sf 3) 返回 3.0
Math.min (2.5, 4.6) 返回 2.S
Math.abs(-2) 返回 2
Math.abs(-2.1) 返回 2.1
4.1.5 random 方法
可以使用random( )方法编写简单的表达式,生成任意范围的随机数。
例如:
(int)(Math.random( ) * 10) 返回 0 ~ 9 之间的一个随机整数
5O + (int)(Math.random( ) * 50) 返回 50 ~ 99 之间的一个随机整数
通常,
a + Math . random( ) * b 返回 a ~ a+b 之间的一个随机整数,不包括 a+b
4.2 字符数据类型和操作
字符数据类型表示单个字符。
除了处理数值之外,Java 还可以处理字符。字符数据类型 char 用来表示单个字符。字符型直接量用单引号括住。
考虑以下代码:
char letter = "A";
char numChar = "4";
第一条语句将字符 A 赋值给 char 型变量 letter。第二条语句将数字字符 4 赋值给 char 型变量 numChar。
注意:字符串直接量必须括在双引号中。而字符直接量是括在单引号中的单个字符。因此 "A" 是一个字符串,而 ’A’ 是一个字符。
4.2.1 Unicode 和 ASCII 码
计算机内部使用二进制数。一个字符在计算机中是以 0 和 1 构成的序列的形式来存储的。将字符映射到它的二进制形式的过程称为编码(encoding)。字符有多种不同的编码方式,编码表(encoding scheme)定义该如何编码每个字符。
Java 程序中,可以使用像 ‘X’、 ‘1’ 和 ‘$’ 这样的 ASCII 字符,也可以使用 Unicode 码。
例如,下面的语句是等价的:
char letter = 'A';
char letter = '\u0041';// Character A’s Unicode is 0041
两条语句都将字符 A 赋