詳解Java String類常用方法有哪些
一、構(gòu)造器
實(shí)質(zhì)是給底層的char數(shù)組value賦值
String s1 = new String();
String s2 = new String(“abc”);
String s3 = new String(new char[]{‘a(chǎn)',‘b',‘c'});
二、方法
str.length() 字符串長(zhǎng)度本質(zhì)是底層的char數(shù)組的長(zhǎng)度
str.isEmpty() 本質(zhì)是判斷底層char數(shù)組長(zhǎng)度是否為0
str.charAt(i) 本質(zhì)是取底層char數(shù)組的第i個(gè)元素(字符)
str1.equals(str2)本質(zhì)是比較二者底層char數(shù)組的元素是否都相等
str1.compareTo(str2)本質(zhì)是返回二者底層char數(shù)組中第一個(gè)不同元素(字符的碼值)之差,如果沒有不同元素,則返回二者底層char數(shù)組長(zhǎng)度之差。如果返回0,說(shuō)明二者底層char數(shù)組相同。
三、常用方法
package com.llg.learnString; import java.util.Arrays; import java.util.Locale; public class Learn01 { //程序的入口 public static void main(String[] args) { String s11 = "abcdefghijk"; System.out.println(s11); //字符串截取 從第3位開始取到最后 System.out.println(s11.substring(3));//defghijk //字符串截取 從第3位開始取到第6位最后 System.out.println(s11.substring(3, 6));//def //字符串合并拼接 把zzzzz拼接到后面 System.out.println(s11.concat("zzzzz"));//abcdefghijkzzzzz //字符串中的字符替換 把b替換為x System.out.println(s11.replace('b','x'));//axcdefghijk String s12 = "a-b-c-def-ghi-jk"; //字符串分割 以-分割字符串,返回字符串?dāng)?shù)組 String[] strarr= s12.split("-"); System.out.println(Arrays.toString(strarr));//[a, b, c, def, ghi, jk] //轉(zhuǎn)換為小寫 String s13 = "abc"; System.out.println(s13.toUpperCase());//ABC //轉(zhuǎn)換為大寫 String s14 = "ABC"; System.out.println(s14.toLowerCase());//abc //去除首尾空格 String s15 = " a b c def "; System.out.println(s15.trim());//a b c def //toString String s16 = "abc"; System.out.println(s16.toString());//abc //轉(zhuǎn)換為字符串String.valueOf System.out.println(String.valueOf(true));//true System.out.println(String.valueOf(false));//false } }
四、String的內(nèi)存分析
4.1、無(wú)變量參與的字符串拼接,編譯后只存在結(jié)果字符串
編譯器優(yōu)化
4.2、new String(“abc”)新的字符串對(duì)象
4.3、變量參與的字符串拼接,編譯器不會(huì)優(yōu)化
反匯編查看javap -c Learn5.class
到此這篇關(guān)于詳解Java String類常用方法有哪些的文章就介紹到這了,更多相關(guān)String類常用方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java之SSM中bean相關(guān)知識(shí)匯總案例講解
這篇文章主要介紹了Java之SSM中bean相關(guān)知識(shí)匯總案例講解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07java統(tǒng)計(jì)漢字字?jǐn)?shù)的方法示例
這篇文章主要介紹了java統(tǒng)計(jì)漢字字?jǐn)?shù)的方法,結(jié)合實(shí)例形式分析了java正則判定、字符串遍歷及統(tǒng)計(jì)相關(guān)操作技巧,需要的朋友可以參考下2017-05-05java web開發(fā)之實(shí)現(xiàn)購(gòu)物車功能
這篇文章主要為大家詳細(xì)介紹了java web開發(fā)之實(shí)現(xiàn)購(gòu)物車功能的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-07-07spring使用xml方式整合Druid數(shù)據(jù)源連接池
傳統(tǒng)的JDBC數(shù)據(jù)庫(kù)連接方式,每次連接都需加載Connection到內(nèi)存并驗(yàn)證,使用后再放回,從而重復(fù)利用數(shù)據(jù)庫(kù)連接資源,這不僅降低了系統(tǒng)資源消耗,還避免了頻繁連接導(dǎo)致的服務(wù)器崩潰和內(nèi)存泄漏風(fēng)險(xiǎn),數(shù)據(jù)庫(kù)連接池在初始化時(shí)創(chuàng)建并保持最小數(shù)量的數(shù)據(jù)庫(kù)連接2024-10-10SpringBoot項(xiàng)目更換項(xiàng)目名稱的實(shí)現(xiàn)
本文主要介紹了SpringBoot項(xiàng)目更換項(xiàng)目名稱,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-06-06詳解JAVA 線程-線程的狀態(tài)有哪些?它是如何工作的?
這篇文章主要介紹了詳解JAVA 線程的的相關(guān)資料,文中講解非常細(xì)致,源碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以參考下2020-06-06怎樣通過(guò)反射獲取非靜態(tài)內(nèi)部類實(shí)例
這篇文章主要介紹了怎樣通過(guò)反射獲取非靜態(tài)內(nèi)部類實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03java項(xiàng)目依賴包選擇具體實(shí)現(xiàn)類示例介紹
這篇文章主要為大家介紹了java項(xiàng)目依賴包選擇具體實(shí)現(xiàn)類示例介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12