目录1.Integer类1)常用静态方法2)常用对象方法2.String类1)创建2) 常用方法比较与判断javascript字符操作修改3.Character类4.Double类5.Float类6.Math类7. StringBuilder / StringBuffer(字符串可变类)区别:8.
目录
- 1.Integer类
- 2.String类
- 3.Character类
- 4.Double类
- 5.Float类
- 6.Math类
- 7. StringBuilder / StringBuffer(字符串可变类)
- 8. Objects(空值判断、比较)
- 9. Arrays(操作数组的工具类)
- 10. Collections(操作 List、Set、Map)
- 11. BigDecimal(精确小数运算)
- 1android) 构造:
- 2) 常用方法:
- 3) 舍入模式:
- 12. Random(生成随机数)
- 13. ThreadLocalRandom(更快的多线程随机)
- 14.如何判断一个类是不是工具类?
- 总结
1.Integer类
1)常用静态方法
方法 | 说明 |
---|
Integer.parseInt(String s) | 把字符串转为 int |
Integer.valueOf(String s) | 返回Integer对象 |
Interger.toBinaryString(int n) | 转二进制字符串 |
Integer.toHexString(int n) | 转八进制字符串 |
Integer.toOctalString(int n) | 转十六进制字符串 |
Integer.compare(int x, int y) | 比较两个int |
Integer.max(int a, int b) | 最大值 |
Integer.min(int a, int b | 最小值 |
Integer.sum(int a,int b) | 和 |
Integer.parseInt("A", 16) | 十六进制字符串 → 十进制数 |
Integer.toString(26, 16) | 十进制 → 十六进制字符串 |
//eg:
int result = Integer.parseInt("A", 16);
System.out.println(result); // 输出 10
2)常用对象方法
方法 | 说明 |
---|
intVaule() | 去除int值,eg:doubleObj.intVaule(); |
compareTo(Integer another) | 比较两个 Integer |
equals(object obj) | 比较两个值是否相等 |
2.String类
1)创建
String s = "hello";
String s = new String("hello");
2) 常用方法
比较与判断
方法 | 说明 |
---|
equals(String s) | 比较内容 |
equalsIgnoreCase(String s) | 忽略大小写比较 |
compareTo(String s) | 字典序比较 |
contains(CharSequence s) | 是否包含子串 |
startsWith(String prefix) | 前缀 |
endsWith(String suffix) | 后缀 |
isEmpty() | 是否空字符串 |
//1.compareTo(T o)用法示例:按顺序比较
//当前对象<参数对象,返回负整数;
//当前对象=参数对象,返回0;
//当前对象>参数对象,返回正整数;
//2.CharSequence是一个Java的接口,表示一个可读的字符序列。它是String、StringBuilder、StringBuffer等类的父接口,定义了字符序列的基本操作。
//3.startsWith()
String str = "Hello World";
boolean result = str.startsWith("Hello");
//使用偏移量,从索引7开始的子字符串是否以"World"开头
boolean result = str.startWith("World",7);
字符操作
方法 | 说明 |
---|
charAt(int index) | 取下标字符 |
length() | 字符串长度 |
indexOf(String s) | 首次出现位置 |
lastIndexOf(String s) | 最后一次出现的位置 |
修改
方法 | 说明 |
---|
substring(int start, int end) | 提取子字符串 |
replace(char old, char new) | 替换字符/字符串(CharSequence) |
replaceAll(String regex, String replacement) | 替换所有正则匹配的内容 |
toUpperCase()/toLowerCase() | 大小写转换 |
trim() | 去除首尾空格 |
split(String regex) | 按指定字符分割成数组 |
3.Character类
方法 | 说明 |
---|
Character.isDigit(char c) | 是否为数字 |
Character.isLetter(char c) | 是否为字母 |
Character.isUpperCase(char c) | 是否为大写 |
Character.isLowerCase(char c) | 是否为小写 |
Character.toUpperCase(char c) | 转大写 |
Character.toLowerCase(char c) | 转小写 |
4.Double类
方法 | 说明 |
---|
Double.parseDouble(String s) | 字符串转double编程客栈 |
Double.valueOf(String s) | 返回 Double 对象 |
Double.compare(double a, double b) | 比较大小 |
isNaN(double v) | 是否是NaN |
isInfinite(double v) | 是否为无穷大 |
doubleValue() | 取出 double 值 |
注意:doubleValue()是Number 类及其子类(如 Double、Integer、Float 等)的方法!
5.Float类
方法 | 说明 |
---|
Float.parseFloat(String s) | 字符串转float |
Float.valueOf(String s) | 返回 Float 对象 |
Float.compare(float a, float b) | 比较大小 |
isNaN(float v) | 是否是NaN |
isInfinite(float v) | 是否为无穷大 |
floatValue() | 取出 float 值 |
6.Math类
方法 | 说明 |
---|
abs(x) | 绝对值 |
max(a,b)/min(a,b) | 最大/小值 |
pow(a,b) | 幂运算,a^b |
sqrt(x) | 平方根 |
cbrt(x) | 立方根 |
round(x) | 四舍五入 |
ceil(x) | 向上取整 |
floor(x) | 向下取整 |
random() | 返回[0, 1)的随机数 |
log(x) | 自然对数 |
7. StringBuilder / StringBuffer(字符串可变类)
方法 | 说明 |
---|
append(x) | 追加字符串 / 各种类型 |
insert(int offset, x) | 插入 |
delete(int start, int end) | 删除子串 |
deleteCharAt(int index) | 删除指定下标字符 |
reverse() | 翻转 |
toString() | 转为 String |
setCharAt(int index, char ch) | 设置指定位置字符 |
length() | 长度 |
charAt(int index) | 获取字符 |
区别:
StringBuilder
:非线程安全,速度快StringBuffer
:线程安全,速度慢
8. Objects(空值判断、比较)
方法 | 说明 |
---|
Objects.equals(a, b) | 安全比较(支持 null) |
Objects.isNull(obj) | 判断是否为 null |
Objects.nonNull(obj) | 判断非 null(常配合 Stream) |
Objects.requireNonNull(obj) | 如果是 null 抛异常 |
Objects.hash(...) | 计算哈希值(常用于实现 hashCode ) |
9. Arrays(操作数组的工具类)
方法 | 说明 |
---|
Arrays.sort(arr) | 默认升序排序 |
Arrays.sort(arr, Comparator) | 自定义排序 |
Arrays.binarySearch(arr, key) | 二分查找(已排序数组) |
Arrays.toString(arr) | 输出数组内容 |
Arrays.equals(arr1, arr2) | 比较两个数组是否相等 |
Arrays.fill(arr, value) | 填充数组 |
Arrays.copyOf(arr, newLength) | 拷贝数组 |
Arrays.copyOfRange(arr, from, to) | 区间拷贝 |
10. Collections(操作 List、Set、Map)
方法 | 说明 |
---|
Collections.sort(list) | 对 List 排序(升序) |
Collections.sort(list, Comparator) | 自定义排序 |
Collections.reverse(list) | 反转 |
Collections.shuffle(list) | 随机打乱 |
Collections.swap(list, i, j) | 交换两个元素位置 |
Collections.max(list) / min(list) | 最大/最小元素 |
Collections.frequency(list, x) | 元素出现次数 |
Collections.unmodifiableList(list) | 返回只读 List |
Collections.singletonList(x) | 单元素只读 List |
Collections.synchronizedList(list) | 返回线程安全 List |
Collections.unmodifiableList(list)、Collections.singletonList(x)、Collections.synchronizedList(list) 对比
方法 | 是否可写 | 是否线程安全 | 元素数量 | 适用场景 |
---|
unmodifiableList(list) | ❌(原 list 可变) | ❌ | 任意 | 给调用者返回一个只读视图 |
singletonList(x) | ❌(完全只读) | ✅ | 固定 1 个 | 返回固定常量 Listwww.devze.com |
synchronizedList(list) | ✅ | ✅ | 任意 | 多线程下安全操作 List |
11. BigDecimal(精确小数运算)
1) 构造:
BigDecimal a = new BigDecimal("0.1"); // 字符串构造更精确
2) 常用方法:
方法 | 说明 |
---|
add(BigDecimal) | 加法 |
subtract(BigDecimal) | 减法 |
multiply(BigDecimal) | 乘法 |
divide(BigDecimal, scale, RoundingMode) | 除法,必须指定精度和舍入方式 |
compareTo(BigDecimal) | 比较大小(返回 -1/0/1) |
setScale(int scale, RoundingMode) | 设置小数位数和舍入方式 |
toPlainString() | 返回非科学计数法字符串 |
doubleValue() | 转为 double |
3) 舍入模式:
RoundingMode.HALF_UP // 四舍五入
RoundingMode.DOWN // 向零舍去
1. setScale(int scale, RoundingMode mode)
设置小数点保留几位,并指定舍入方式。
2. divide(BigDecimal divisor, int scale, RoundingMode mode)
在除法不能整除时,设置保留位数和舍入方式。
12. Random(生成随机数)
Random rand = new Random();
// 生成 [min, max] 区间整数
int random = (int)(Math.random() * (max - min + 1)) + min;
方法 | 说明 |
---|
nextInt() | 随机 int(全范围) |
nextIntandroid(n) | 生成 [0, n) 的 int |
nextDouble() | 生成 [0.0, 1.0) |
nextBoolean() | true / false |
nextLong() | long 类型随机数 |
nextFloat() | float 随机数 |
13. ThreadLocalRandom(更快的多线程随机)
ThreadLocalRandom rand = ThreadLocalRandom.current();
方法 | 说明 |
---|
nextInt(int bound) | [0, bound) 随机整数 |
nextInt(int origin, int bound) | [origin, bound) |
nextDouble() | [0.0, 1.0) |
nextDouble(double origin, double bound) | [origin, bound) |
优势:
- 不同线程之间无竞争,适合多线程场景。
- 不要用
new ThreadLocalRandom()
,直接 ThreadLocalRandom.current()
。
14.如何判断一个类是不是工具类?
总结
到此这篇关于Java中几个常用类方法的文章就介绍到这了,更多相关Java常用类方法内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论