1. 字符串操作
1.1 String 类
String
是不可变类(immutable),每次修改都会生成新对象。常用方法:
String str = "Hello, Java";
// 获取长度
int len = str.length(); // 11
// 取字符
char c = str.charAt(1); // 'e'
// 截取
String sub = str.substring(7); // "Java"
String sub2 = str.substring(0,5); // "Hello"
// 查找
int index = str.indexOf('J'); // 7
int lastIndex = str.lastIndexOf('a'); // 10
// 比较
boolean eq1 = str.equals("Hello, Java"); // true
boolean eq2 = str.equalsIgnoreCase("hello, java"); // true
// 拼接
String s2 = str + " World"; // "Hello, Java World"
String s3 = str.concat(" World");
// 分割
String[] arr = str.split(", "); // ["Hello", "Java"]
// 替换
String replaced = str.replace("Java", "World"); // "Hello, World"
// 去空格
String s4 = " abc ".trim(); // "abc"
1.2 StringBuilder / StringBuffer
StringBuilder
(线程不安全)和 StringBuffer
(线程安全)用于 可变字符串,修改效率高。常用方法:
StringBuilder sb = new StringBuilder("Hello");
// 追加
sb.append(", Java"); // "Hello, Java"
// 插入
sb.insert(5, " World"); // "Hello World, Java"
// 修改
sb.setCharAt(0, 'h'); // "hello World, Java"
sb.replace(0,5,"Hi"); // "Hi World, Java"
// 删除
sb.delete(3,8); // 删除索引3-7
// 反转
sb.reverse();
// 转字符串
String result = sb.toString();
✅ 建议:频繁修改字符串用 StringBuilder
,少量拼接可以用 String
。
2. Math 工具类
Math
提供数学运算方法,都是静态方法。
int max = Math.max(5, 10); // 10
int min = Math.min(5, 10); // 5
double pow = Math.pow(2,3); // 8.0
double sqrt = Math.sqrt(16); // 4.0
double abs = Math.abs(-5); // 5
double ceil = Math.ceil(2.3); // 3.0
double floor = Math.floor(2.7); // 2.0
double round = Math.round(2.5); // 3
double random = Math.random(); // [0,1) 之间的随机数
3. Arrays 工具类
Arrays
提供数组操作方法(静态方法):
import java.util.Arrays;
int[] arr = {5, 3, 8, 1};
// 排序
Arrays.sort(arr); // [1,3,5,8]
// 查找(必须先排序)
int index = Arrays.binarySearch(arr, 5); // 2
// 转字符串
String str = Arrays.toString(arr); // "[1, 3, 5, 8]"
// 拷贝
int[] copy = Arrays.copyOf(arr, arr.length);
// 填充
Arrays.fill(arr, 0); // [0,0,0,0]
4. Collections 工具类
Collections
是集合工具类,操作 List
、Set
、Map
等集合。
import java.util.*;
List<Integer> list = new ArrayList<>(Arrays.asList(3,1,4,2));
// 排序
Collections.sort(list); // [1,2,3,4]
// 反转
Collections.reverse(list); // [4,3,2,1]
// 查找最大最小
int max = Collections.max(list);
int min = Collections.min(list);
// 随机打乱
Collections.shuffle(list);
// 线程安全包装
List<Integer> syncList = Collections.synchronizedList(list);
5. 包装类(Wrapper Class)与自动装箱/拆箱
5.1 包装类
Java 提供基本数据类型对应的对象类:
基本类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
用途:
-
可以作为泛型类型使用(集合不支持基本类型)
-
提供类型转换、常用工具方法
int a = 10;
Integer b = Integer.valueOf(a); // 装箱
int c = b.intValue(); // 拆箱
5.2 自动装箱/拆箱
Java 自动完成基本类型 ↔ 包装类转换。
Integer num = 100; // 自动装箱
int n = num; // 自动拆箱
List<Integer> list = new ArrayList<>();
list.add(10); // 自动装箱
int x = list.get(0); // 自动拆箱
6. 小结
类/概念 | 作用 | 常用方法 |
---|---|---|
String | 不可变字符串 | length(), charAt(), substring(), indexOf(), split(), replace() |
StringBuilder / StringBuffer | 可变字符串 | append(), insert(), delete(), reverse(), toString() |
Math | 数学运算 | max(), min(), pow(), sqrt(), abs(), random() |
Arrays | 数组工具 | sort(), binarySearch(), toString(), copyOf(), fill() |
Collections | 集合工具 | sort(), reverse(), shuffle(), max(), min(), synchronizedList() |
包装类 | 基本类型对象化 | valueOf(), parseInt(), intValue() |
自动装箱/拆箱 | 基本类型 ↔ 包装类自动转换 | 无需手动调用方法 |