這篇文章主要介紹了Java中幾個(gè)常用類方法的相關(guān)資料,文中通過示例講解了靜態(tài)與對(duì)象操作、工具類特征、多線程隨機(jī)數(shù)生成及數(shù)值計(jì)算技巧,需要的朋友可以參考下
1.Integer類
1)常用靜態(tài)方法
方法 | 說明 |
---|
Integer.parseInt(String s) | 把字符串轉(zhuǎn)為 int |
Integer.valueOf(String s) | 返回Integer對(duì)象 |
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) | 比較兩個(gè)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)常用對(duì)象方法
方法 | 說明 |
---|
intVaule() | 去除int值,eg:doubleObj.intVaule(); |
compareTo(Integer another) | 比較兩個(gè) Integer |
equals(object obj) | 比較兩個(gè)值是否相等 |
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)前對(duì)象<參數(shù)對(duì)象,返回負(fù)整數(shù);
//當(dāng)前對(duì)象=參數(shù)對(duì)象,返回0;
//當(dāng)前對(duì)象>參數(shù)對(duì)象,返回正整數(shù);
//2.CharSequence是一個(gè)Java的接口,表示一個(gè)可讀的字符序列。它是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() | 字符串長(zhǎng)度 |
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 對(duì)象 |
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 對(duì)象 |
Float.compare(float a, float b) | 比較大小 |
isNaN(float v) | 是否是NaN |
isInfinite(float v) | 是否為無窮大 |
floatValue() | 取出 float 值 |
6.Math類
方法 | 說明 |
---|
abs(x) | 絕對(duì)值 |
max(a,b)/min(a,b) | 最大/小值 |
pow(a,b) | 冪運(yùn)算,a^b |
sqrt(x) | 平方根 |
cbrt(x) | 立方根 |
round(x) | 四舍五入 |
ceil(x) | 向上取整 |
floor(x) | 向下取整 |
random() | 返回[0, 1)的隨機(jī)數(shù) |
log(x) | 自然對(duì)數(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() | 長(zhǎng)度 |
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(...) | 計(jì)算哈希值(常用于實(shí)現(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) | 比較兩個(gè)數(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) | 對(duì) List 排序(升序) |
Collections.sort(list, Comparator) | 自定義排序 |
Collections.reverse(list) | 反轉(zhuǎn) |
Collections.shuffle(list) | 隨機(jī)打亂 |
Collections.swap(list, i, j) | 交換兩個(gè)元素位置 |
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) 對(duì)比
方法 | 是否可寫 | 是否線程安全 | 元素?cái)?shù)量 | 適用場(chǎng)景 |
---|
unmodifiableList(list) | ?(原 list 可變) | ? | 任意 | 給調(diào)用者返回一個(gè)只讀視圖 |
singletonList(x) | ?(完全只讀) | ? | 固定 1 個(gè) | 返回固定常量 List |
synchronizedList(list) | ? | ? | 任意 | 多線程下安全操作 List |
11. BigDecimal(精確小數(shù)運(yùn)算)
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é)計(jì)數(shù)法字符串 |
doubleValue() | 轉(zhuǎn)為 double |
3) 舍入模式:
RoundingMode.HALF_UP // 四舍五入
RoundingMode.DOWN // 向零舍去
1. setScale(int scale, RoundingMode mode)
設(shè)置小數(shù)點(diǎn)保留幾位,并指定舍入方式。
2. divide(BigDecimal divisor, int scale, RoundingMode mode)
在除法不能整除時(shí),設(shè)置保留位數(shù)和舍入方式。
12. Random(生成隨機(jī)數(shù))
Random rand = new Random();
// 生成 [min, max] 區(qū)間整數(shù)
int random = (int)(Math.random() * (max - min + 1)) + min;
方法 | 說明 |
---|
nextInt() | 隨機(jī) int(全范圍) |
nextInt(n) | 生成 [0, n) 的 int |
nextDouble() | 生成 [0.0, 1.0) |
nextBoolean() | true / false |
nextLong() | long 類型隨機(jī)數(shù) |
nextFloat() | float 隨機(jī)數(shù) |
13. ThreadLocalRandom(更快的多線程隨機(jī))
ThreadLocalRandom rand = ThreadLocalRandom.current();
方法 | 說明 |
---|
nextInt(int bound) | [0, bound) 隨機(jī)整數(shù) |
nextInt(int origin, int bound) | [origin, bound) |
nextDouble() | [0.0, 1.0) |
nextDouble(double origin, double bound) | [origin, bound) |
優(yōu)勢(shì):
- 不同線程之間無競(jìng)爭(zhēng),適合多線程場(chǎng)景。
- 不要用
new ThreadLocalRandom()
,直接 ThreadLocalRandom.current()
。
14.如何判斷一個(gè)類是不是工具類?
- 構(gòu)造方法是私有的
- 所有方法是靜態(tài)的
總結(jié)
到此這篇關(guān)于Java中幾個(gè)常用類方法的文章就介紹到這了,更多相關(guān)Java常用類方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!