這篇文章主要介紹了Java中幾個常用類方法的相關(guān)資料,文中通過示例講解了靜態(tài)與對象操作、工具類特征、多線程隨機數(shù)生成及數(shù)值計算技巧,需要的朋友可以參考下
1.Integer類
1)常用靜態(tài)方法
| 方法 | 說明 |
|---|
| Integer.parseInt(String s) | 把字符串轉(zhuǎn)為 int |
| Integer.valueOf(String s) | 返回Integer對象 |
| Interger.toBinaryString(int n) | 轉(zhuǎn)二進(jìn)制字符串 |
| Integer.toHexString(int n) | 轉(zhuǎn)八進(jìn)制字符串 |
| Integer.toOctalString(int n) | 轉(zhuǎn)十六進(jì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) | 十六進(jìn)制字符串 → 十進(jìn)制數(shù) |
Integer.toString(26, 16) | 十進(jìn)制 → 十六進(jìn)制字符串 |
//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)創(chuàng)建
String s = "hello";
String s = new String("hello");
2) 常用方法
比較與判斷
| 方法 | 說明 |
|---|
| equals(String s) | 比較內(nèi)容 |
| equalsIgnoreCase(String s) | 忽略大小寫比較 |
| compareTo(String s) | 字典序比較 |
| contains(CharSequence s) | 是否包含子串 |
| startsWith(String prefix) | 前綴 |
| endsWith(String suffix) | 后綴 |
| isEmpty() | 是否空字符串 |
//1.compareTo(T o)用法示例:按順序比較
//當(dāng)前對象<參數(shù)對象,返回負(fù)整數(shù);
//當(dāng)前對象=參數(shù)對象,返回0;
//當(dāng)前對象>參數(shù)對象,返回正整數(shù);
//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) | 取下標(biāo)字符 |
| length() | 字符串長度 |
| indexOf(String s) | 首次出現(xiàn)位置 |
| lastIndexOf(String s) | 最后一次出現(xiàn)的位置 |
修改
| 方法 | 說明 |
|---|
| substring(int start, int end) | 提取子字符串 |
| replace(char old, char new) | 替換字符/字符串(CharSequence) |
| replaceAll(String regex, String replacement) | 替換所有正則匹配的內(nèi)容 |
| toUpperCase()/toLowerCase() | 大小寫轉(zhuǎn)換 |
| trim() | 去除首尾空格 |
| split(String regex) | 按指定字符分割成數(shù)組 |
3.Character類
| 方法 | 說明 |
|---|
| Character.isDigit(char c) | 是否為數(shù)字 |
| Character.isLetter(char c) | 是否為字母 |
| Character.isUpperCase(char c) | 是否為大寫 |
| Character.isLowerCase(char c) | 是否為小寫 |
| Character.toUpperCase(char c) | 轉(zhuǎn)大寫 |
| Character.toLowerCase(char c) | 轉(zhuǎn)小寫 |
4.Double類
| 方法 | 說明 |
|---|
| Double.parseDouble(String s) | 字符串轉(zhuǎn)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) | 字符串轉(zhuǎn)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)的隨機數(shù) |
| log(x) | 自然對數(shù) |
7. StringBuilder / StringBuffer(字符串可變類)
| 方法 | 說明 |
|---|
append(x) | 追加字符串 / 各種類型 |
insert(int offset, x) | 插入 |
delete(int start, int end) | 刪除子串 |
deleteCharAt(int index) | 刪除指定下標(biāo)字符 |
reverse() | 翻轉(zhuǎn) |
toString() | 轉(zhuǎn)為 String |
setCharAt(int index, char ch) | 設(shè)置指定位置字符 |
length() | 長度 |
charAt(int index) | 獲取字符 |
區(qū)別:
StringBuilder:非線程安全,速度快StringBuffer:線程安全,速度慢
8. Objects(空值判斷、比較)
| 方法 | 說明 |
|---|
Objects.equals(a, b) | 安全比較(支持 null) |
Objects.isNull(obj) | 判斷是否為 null |
Objects.nonNull(obj) | 判斷非 null(常配合 Stream) |
Objects.requireNonNull(obj) | 如果是 null 拋異常 |
Objects.hash(...) | 計算哈希值(常用于實現(xiàn) hashCode) |
9. Arrays(操作數(shù)組的工具類)
| 方法 | 說明 |
|---|
Arrays.sort(arr) | 默認(rèn)升序排序 |
Arrays.sort(arr, Comparator) | 自定義排序 |
Arrays.binarySearch(arr, key) | 二分查找(已排序數(shù)組) |
Arrays.toString(arr) | 輸出數(shù)組內(nèi)容 |
Arrays.equals(arr1, arr2) | 比較兩個數(shù)組是否相等 |
Arrays.fill(arr, value) | 填充數(shù)組 |
Arrays.copyOf(arr, newLength) | 拷貝數(shù)組 |
Arrays.copyOfRange(arr, from, to) | 區(qū)間拷貝 |
10. Collections(操作 List、Set、Map)
| 方法 | 說明 |
|---|
Collections.sort(list) | 對 List 排序(升序) |
Collections.sort(list, Comparator) | 自定義排序 |
Collections.reverse(list) | 反轉(zhuǎn) |
Collections.shuffle(list) | 隨機打亂 |
Collections.swap(list, i, j) | 交換兩個元素位置 |
Collections.max(list) / min(list) | 最大/最小元素 |
Collections.frequency(list, x) | 元素出現(xiàn)次數(shù) |
Collections.unmodifiableList(list) | 返回只讀 List |
Collections.singletonList(x) | 單元素只讀 List |
Collections.synchronizedList(list) | 返回線程安全 List |
??Collections.unmodifiableList(list)、Collections.singletonList(x)、Collections.synchronizedList(list) 對比
| 方法 | 是否可寫 | 是否線程安全 | 元素數(shù)量 | 適用場景 |
|---|
unmodifiableList(list) | ?(原 list 可變) | ? | 任意 | 給調(diào)用者返回一個只讀視圖 |
singletonList(x) | ?(完全只讀) | ? | 固定 1 個 | 返回固定常量 List |
synchronizedList(list) | ? | ? | 任意 | 多線程下安全操作 List |
11. BigDecimal(精確小數(shù)運算)
1) 構(gòu)造:
BigDecimal a = new BigDecimal("0.1"); // 字符串構(gòu)造更精確
2) 常用方法:
| 方法 | 說明 |
|---|
add(BigDecimal) | 加法 |
subtract(BigDecimal) | 減法 |
multiply(BigDecimal) | 乘法 |
divide(BigDecimal, scale, RoundingMode) | 除法,必須指定精度和舍入方式 |
compareTo(BigDecimal) | 比較大?。ǚ祷?-1/0/1) |
setScale(int scale, RoundingMode) | 設(shè)置小數(shù)位數(shù)和舍入方式 |
toPlainString() | 返回非科學(xué)計數(shù)法字符串 |
doubleValue() | 轉(zhuǎn)為 double |
3) 舍入模式:
RoundingMode.HALF_UP // 四舍五入
RoundingMode.DOWN // 向零舍去
1. setScale(int scale, RoundingMode mode)
設(shè)置小數(shù)點保留幾位,并指定舍入方式。
2. divide(BigDecimal divisor, int scale, RoundingMode mode)
在除法不能整除時,設(shè)置保留位數(shù)和舍入方式。
12. Random(生成隨機數(shù))
Random rand = new Random();
// 生成 [min, max] 區(qū)間整數(shù)
int random = (int)(Math.random() * (max - min + 1)) + min;
| 方法 | 說明 |
|---|
nextInt() | 隨機 int(全范圍) |
nextInt(n) | 生成 [0, n) 的 int |
nextDouble() | 生成 [0.0, 1.0) |
nextBoolean() | true / false |
nextLong() | long 類型隨機數(shù) |
nextFloat() | float 隨機數(shù) |
13. ThreadLocalRandom(更快的多線程隨機)
ThreadLocalRandom rand = ThreadLocalRandom.current();
| 方法 | 說明 |
|---|
nextInt(int bound) | [0, bound) 隨機整數(shù) |
nextInt(int origin, int bound) | [origin, bound) |
nextDouble() | [0.0, 1.0) |
nextDouble(double origin, double bound) | [origin, bound) |
優(yōu)勢:
- 不同線程之間無競爭,適合多線程場景。
- 不要用
new ThreadLocalRandom(),直接 ThreadLocalRandom.current()。
14.如何判斷一個類是不是工具類?
- 構(gòu)造方法是私有的
- 所有方法是靜態(tài)的
總結(jié)
到此這篇關(guān)于Java中幾個常用類方法的文章就介紹到這了,更多相關(guān)Java常用類方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!