常用库函数
数学方法
Java 常用数学方法 (Math 类)
1. 最大值与最小值
| 方法签名 | 功能描述 | 示例 |
|---|---|---|
static int max(int a, int b) |
返回两个整数中的较大值 | Math.max(5, 10) → 10 |
static double max(double a, double b) |
返回两个浮点数中的较大值 | Math.max(3.5, 2.8) → 3.5 |
static int min(int a, int b) |
返回两个整数中的较小值 | Math.min(5, 10) → 5 |
static double min(double a, double b) |
返回两个浮点数中的较小值 | Math.min(3.5, 2.8) → 2.8 |
2. 绝对值
| 方法签名 | 功能描述 | 示例 |
|---|---|---|
static int abs(int a) |
返回整数的绝对值 | Math.abs(-5) → 5 |
static double abs(double a) |
返回浮点数的绝对值 | Math.abs(-3.5) → 3.5 |
3. 幂运算与平方根
| 方法签名 | 功能描述 | 示例 |
|---|---|---|
static double pow(double a, double b) |
返回 a 的 b 次幂 |
Math.pow(2, 3) → 8.0 |
static double sqrt(double a) |
返回 a 的平方根 |
Math.sqrt(25) → 5.0 |
static double cbrt(double a) |
返回 a 的立方根 |
Math.cbrt(-8) → -2.0 |
4. 四舍五入与取整
| 方法签名 | 功能描述 | 示例 |
|---|---|---|
static long round(double a) |
四舍五入返回最接近的整数 | Math.round(3.6) → 4 |
static double ceil(double a) |
向上取整 | Math.ceil(3.2) → 4.0 |
static double floor(double a) |
向下取整 | Math.floor(3.8) → 3.0 |
5. 三角函数(参数为弧度)
| 方法签名 | 功能描述 | 示例 |
|---|---|---|
static double sin(double radians) |
返回角度的正弦值 | Math.sin(Math.PI/2) → 1.0 |
static double cos(double radians) |
返回角度的余弦值 | Math.cos(0) → 1.0 |
static double tan(double radians) |
返回角度的正切值 | Math.tan(0) → 0.0 |
static double toRadians(double degrees) |
角度转弧度 | Math.toRadians(90) → π/2 |
6. 对数与指数
| 方法签名 | 功能描述 | 示例 |
|---|---|---|
static double log(double a) |
返回自然对数(底为 e) |
Math.log(Math.E) → 1.0 |
static double log10(double a) |
返回以 10 为底的对数 | Math.log10(100) → 2.0 |
static double exp(double a) |
返回 e 的 a 次幂 |
Math.exp(1) → 2.718... |
7. 随机数
| 方法签名 | 功能描述 | 示例 |
|---|---|---|
static double random() |
返回 [0.0, 1.0) 的随机数 | Math.random() → 0.0 ≤ x < 1.0 |
8. 其他方法
| 方法签名 | 功能描述 | 示例 |
|---|---|---|
static double hypot(double x, double y) |
计算直角三角形的斜边(√(x² + y²)) | Math.hypot(3, 4) → 5.0 |
static double IEEEremainder(double a, double b) |
计算 a 除以 b 的余数(IEEE 754标准) |
Math.IEEEremainder(10, 3) → 1.0 |
9. 常用常量
| 常量 | 值 |
|---|---|
Math.PI |
圆周率 π(约 3.14159) |
Math.E |
自然对数的底 e(约 2.71828) |
使用示例
public class MathExample {
public static void main(String[] args) {
System.out.println("最大值: " + Math.max(5, 10)); // 输出 10
System.out.println("平方根: " + Math.sqrt(25)); // 输出 5.0
System.out.println("随机数: " + Math.random()); // 输出 0.0~1.0之间的数
System.out.println("圆周率: " + Math.PI); // 输出 3.141592653589793
}
}
注意事项
- 参数类型:大部分方法支持
int、long、float、double,但返回值类型与参数类型相关。 - 异常处理:如
sqrt(-1)会返回NaN(Not a Number)。 - 弧度单位:三角函数参数需为弧度,可用
Math.toRadians()转换角度。
大小写转换
一、标准方法:toLowerCase() 和 toUpperCase()
1. 字符串转换
(1) String.toLowerCase()
-
作用:将字符串中所有字符转为小写。
-
示例:
String str = "Hello World! 123"; String lowerStr = str.toLowerCase(); System.out.println(lowerStr); // 输出:hello world! 123
(2) String.toUpperCase()
-
作用:将字符串中所有字符转为大写。
-
示例:
String str = "Hello World! 123"; String upperStr = str.toUpperCase(); System.out.println(upperStr); // 输出:HELLO WORLD! 123
注意:
-
非字母字符(如数字、符号)不会被转换。
-
Locale 问题:默认使用系统本地化设置,若需指定语言环境,可以传入
Locale参数:String str = "İstanbul"; String lower = str.toLowerCase(Locale.ENGLISH); // 强制按英语规则转换
2. 字符转换
(1) Character.toLowerCase(char c)
-
作用:将单个字符转为小写。
-
示例:
char ch = 'A'; char lowerCh = Character.toLowerCase(ch); // lowerCh = 'a'
(2) Character.toUpperCase(char c)
-
作用:将单个字符转为大写。
-
示例:
char ch = 'z'; char upperCh = Character.toUpperCase(ch); // upperCh = 'Z'
二、异或(XOR)转换大小写的原理
1. ASCII 编码的规律
在 ASCII 编码中,大小写字母的二进制值相差 32:
'A'→ 65(二进制01000001)'a'→ 97(二进制01100001)- 差值为
32(二进制00100000,即第 6 位为 1)。
通过 异或 32(即 ^ 0x20),可以快速切换大小写:
char ch = 'A';
char lowerCh = (char)(ch ^ 0x20); // lowerCh = 'a'
char ch2 = 'z';
char upperCh = (char)(ch2 ^ 0x20); // upperCh = 'Z'
2. 示例代码
public class CaseConversion {
public static void main(String[] args) {
char ch = 'B';
// 转小写
char lower = (char)(ch ^ 32);
System.out.println(lower); // 输出:b
// 转大写(再次异或)
char upper = (char)(lower ^ 0x20);
System.out.println(upper); // 输出:B
}
}
3. 注意事项
- 仅适用于 ASCII 字母:非字母字符(如数字、符号)异或后会得到不可预测的结果。
- 不适用于 Unicode:Unicode 字符的编码规则不同,此方法可能失效。
- 可读性差:优先使用
toLowerCase()和toUpperCase()方法。
三、总结对比
| 方法 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
toLowerCase() |
字符串或字符转小写 | 简单直观,支持国际化 | 无法处理特殊需求(如仅部分字符转换) |
toUpperCase() |
字符串或字符转大写 | 同上 | 同上 |
| 异或(XOR) | 快速 ASCII 字母大小写切换 | 高效(底层位运算) | 仅支持 ASCII,可读性差 |
四、ASCII码表
| 十进制 | 十六进制 | 字符 | 描述 | 十进制 | 十六进制 | 字符 | 描述 |
|---|---|---|---|---|---|---|---|
| 0 | 00 | NUL | 空字符 | 64 | 40 | @ | 电子邮件符号 |
| 1 | 01 | SOH | 标题开始 | 65 | 41 | A | 大写字母 A |
| 2 | 02 | STX | 正文开始 | 66 | 42 | B | 大写字母 B |
| 3 | 03 | ETX | 正文结束 | 67 | 43 | C | 大写字母 C |
| 4 | 04 | EOT | 传输结束 | 68 | 44 | D | 大写字母 D |
| 5 | 05 | ENQ | 请求 | 69 | 45 | E | 大写字母 E |
| 6 | 06 | ACK | 收到通知 | 70 | 46 | F | 大写字母 F |
| 7 | 07 | BEL | 响铃 | 71 | 47 | G | 大写字母 G |
| 8 | 08 | BS | 退格 | 72 | 48 | H | 大写字母 H |
| 9 | 09 | HT | 水平制表符 | 73 | 49 | I | 大写字母 I |
| 10 | 0A | LF | 换行符 | 74 | 4A | J | 大写字母 J |
| 11 | 0B | VT | 垂直制表符 | 75 | 4B | K | 大写字母 K |
| 12 | 0C | FF | 换页符 | 76 | 4C | L | 大写字母 L |
| 13 | 0D | CR | 回车符 | 77 | 4D | M | 大写字母 M |
| 14 | 0E | SO | 移位输出 | 78 | 4E | N | 大写字母 N |
| 15 | 0F | SI | 移位输入 | 79 | 4F | O | 大写字母 O |
| 16 | 10 | DLE | 数据链路转义 | 80 | 50 | P | 大写字母 P |
| 17 | 11 | DC1 | 设备控制 1 | 81 | 51 | Q | 大写字母 Q |
| 18 | 12 | DC2 | 设备控制 2 | 82 | 52 | R | 大写字母 R |
| 19 | 13 | DC3 | 设备控制 3 | 83 | 53 | S | 大写字母 S |
| 20 | 14 | DC4 | 设备控制 4 | 84 | 54 | T | 大写字母 T |
| 21 | 15 | NAK | 拒绝接收 | 85 | 55 | U | 大写字母 U |
| 22 | 16 | SYN | 同步空闲 | 86 | 56 | V | 大写字母 V |
| 23 | 17 | ETB | 传输块结束 | 87 | 57 | W | 大写字母 W |
| 24 | 18 | CAN | 取消 | 88 | 58 | X | 大写字母 X |
| 25 | 19 | EM | 介质中断 | 89 | 59 | Y | 大写字母 Y |
| 26 | 1A | SUB | 替换 | 90 | 5A | Z | 大写字母 Z |
| 27 | 1B | ESC | 转义 | 91 | 5B | [ | 左方括号 |
| 28 | 1C | FS | 文件分隔符 | 92 | 5C | \ | 反斜杠 |
| 29 | 1D | GS | 分组分隔符 | 93 | 5D | ] | 右方括号 |
| 30 | 1E | RS | 记录分隔符 | 94 | 5E | ^ | 脱字符 |
| 31 | 1F | US | 单元分隔符 | 95 | 5F | _ | 下划线 |
| 32 | 20 | 空格 | 96 | 60 | ` | 重音符 | |
| 33 | 21 | ! | 感叹号 | 97 | 61 | a | 小写字母 a |
| 34 | 22 | " | 双引号 | 98 | 62 | b | 小写字母 b |
| 35 | 23 | # | 井号 | 99 | 63 | c | 小写字母 c |
| 36 | 24 | $ | 美元符号 | 100 | 64 | d | 小写字母 d |
| 37 | 25 | % | 百分号 | 101 | 65 | e | 小写字母 e |
| 38 | 26 | & | 和号 | 102 | 66 | f | 小写字母 f |
| 39 | 27 | ' | 单引号 | 103 | 67 | g | 小写字母 g |
| 40 | 28 | ( | 左括号 | 104 | 68 | h | 小写字母 h |
| 41 | 29 | ) | 右括号 | 105 | 69 | i | 小写字母 i |
| 42 | 2A | * | 星号 | 106 | 6A | j | 小写字母 j |
| 43 | 2B | + | 加号 | 107 | 6B | k | 小写字母 k |
| 44 | 2C | , | 逗号 | 108 | 6C | l | 小写字母 l |
| 45 | 2D | - | 减号 | 109 | 6D | m | 小写字母 m |
| 46 | 2E | . | 句号 | 110 | 6E | n | 小写字母 n |
| 47 | 2F | / | 斜杠 | 111 | 6F | o | 小写字母 o |
| 48 | 30 | 0 | 数字 0 | 112 | 70 | p | 小写字母 p |
| 49 | 31 | 1 | 数字 1 | 113 | 71 | q | 小写字母 q |
| 50 | 32 | 2 | 数字 2 | 114 | 72 | r | 小写字母 r |
| 51 | 33 | 3 | 数字 3 | 115 | 73 | s | 小写字母 s |
| 52 | 34 | 4 | 数字 4 | 116 | 74 | t | 小写字母 t |
| 53 | 35 | 5 | 数字 5 | 117 | 75 | u | 小写字母 u |
| 54 | 36 | 6 | 数字 6 | 118 | 76 | v | 小写字母 v |
| 55 | 37 | 7 | 数字 7 | 119 | 77 | w | 小写字母 w |
| 56 | 38 | 8 | 数字 8 | 120 | 78 | x | 小写字母 x |
| 57 | 39 | 9 | 数字 9 | 121 | 79 | y | 小写字母 y |
| 58 | 3A | : | 冒号 | 122 | 7A | z | 小写字母 z |
| 59 | 3B | ; | 分号 | 123 | 7B | { | 左花括号 |
| 60 | 3C | < | 小于号 | 124 | 7C | | | 竖线 |
| 61 | 3D | = | 等号 | 125 | 7D | } | 右花括号 |
| 62 | 3E | > | 大于号 | 126 | 7E | ~ | 波浪号 |
| 63 | 3F | ? | 问号 | 127 | 7F | DEL | 删除 |

浙公网安备 33010602011771号