java學(xué)習(xí)筆記_關(guān)于字符串概述
一、String類
String類代表字符串,是由字符構(gòu)成的一個(gè)序列。創(chuàng)建String對(duì)象的方法很簡(jiǎn)單,有以下幾種:
1)用new來(lái)創(chuàng)建:
String s1 = new String("my name is tongye");
2) 不用new直接創(chuàng)建:
String s2 = "my name is tongye";
3) 可以用字符數(shù)組來(lái)創(chuàng)建一個(gè)字符串:
char[] c = {'t','o','n','g','y','e'};
String s3 = new String(c);
String對(duì)象是不可變的,它們的值在創(chuàng)建后不能更改。String類中每一個(gè)看起來(lái)會(huì)修改String值的方法,實(shí)際上都是創(chuàng)建了一個(gè)全新的String對(duì)象,以包含修改后的字符串內(nèi)容。像下面這樣:
String s = "tongye"; // 創(chuàng)建了一個(gè)內(nèi)容為 “tongye” 的String對(duì)象,并將其引用賦值給s,s是一個(gè)String類型的引用 s = "TONGYE"; // 創(chuàng)建了一個(gè)內(nèi)容為“TONGYE”的新的String對(duì)象,并將其引用賦值給s
第二條語(yǔ)句創(chuàng)建后,第一個(gè)String對(duì)象“tongye”并沒(méi)有消失,只是不能再訪問(wèn)它,因?yàn)楝F(xiàn)在引用s指向了另一個(gè)對(duì)象“TONGYE”。
String類有15種構(gòu)造方法,以及許多處理字符串的方法,下面簡(jiǎn)單介紹一些:
String(); // 初始化一個(gè)新創(chuàng)建String對(duì)象,使其表示一個(gè)空字符序列 String(byte[] bytes); // 使用平臺(tái)默認(rèn)的字符集解碼指定的byte數(shù)組,構(gòu)造一個(gè)新的String String(byte[] bytes,Charset charset); // 使用指定的Charset解碼指定的byte數(shù)組,構(gòu)造一個(gè)新的String String(byte[] bytes,int offset,int length); // 使用平臺(tái)默認(rèn)的字符街解碼指定的byte子數(shù)組,構(gòu)造一個(gè)新的String,其中offset是第一個(gè)字符的索引,length是子數(shù)組的長(zhǎng)度 String(StringBuilder builder); // 分配一個(gè)新的字符串,它包含字符串生成器參數(shù)中當(dāng)前包含的字符序列 String(StringBuffer buffer); // 分配一個(gè)新的字符串,它包含字符串緩沖區(qū)參數(shù)中當(dāng)前包含的字符序列
charAt(int index); // 返回指定索引處的char值 s1.compareTo(s2); // 按字典順序比較兩個(gè)字符串s1和s2,返回一個(gè)int型數(shù)據(jù) s1.equals(s2); // 將s1與s2相比較,若完全相等,則返回true s1.contact(s2); // 將s2連接到字符串s1的結(jié)尾 toString(); // 返回此對(duì)象本身 toUpperCase(); // 將所有字符都轉(zhuǎn)換成大寫 valueOf(boolean b); // 返回boolean參數(shù)的字符串表示形式 substring(int beginIndex,int endIndex); // 返回一個(gè)新的字符串,它是該字符串的子字符串,在beginIndex和endIndex之間 split(regex); // 使用給定的正則表達(dá)式來(lái)拆分此字符串
二、StringBuffer和StringBuilder類
String對(duì)象一旦被創(chuàng)建,其內(nèi)容便不能更改,這使得String類并不是很靈活,在一些場(chǎng)合下并不方便。StringBuffer和StringBuilder類是可以替代String類的另一種處理字符串的解決方案,它們相比String類來(lái)說(shuō)更為靈活:可以向一個(gè)StringBuffer或StringBuilder類中添加、插入或追加新內(nèi)容。一般來(lái)說(shuō),只要是使用字符串的地方,都可以用StringBuffer或StringBuilder類。
1、StringBuffer
StringBuffer是一個(gè)線程安全的可變字符序列,一個(gè)類似于String的字符串緩沖區(qū),但是不能修改。StringBuffer有多種處理字符串的方法,其中主要操作是append和insert方法。StringBuilder是線程安全的。
append(boolean b); // 將布爾類型參數(shù)的字符串表示形式追加到序列末尾,其他參數(shù)類型與之類似 insert(int offset,char c); // 將char類型參數(shù)的字符串表示形式插入到此序列索引為offset的字符后面 delete(int start,int end); // 刪除索引號(hào)start和end之間的字符 deleteCharAt(int index); // 移除序列指定位置處的char
2、StringBuilder
StringBuilder是一個(gè)可變的字符序列。它提供一個(gè)與StringBuffer兼容的API,但不保證同步。該類被設(shè)計(jì)為StringBuffer的一個(gè)簡(jiǎn)單替換,用在字符串緩沖區(qū)被單個(gè)線程使用的時(shí)候。在大多數(shù)情況下,它比StringBuffer快。將StringBuilder的實(shí)例用于多個(gè)線程是不安全的。
以上這篇java學(xué)習(xí)筆記_關(guān)于字符串概述就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Cloud超詳細(xì)i講解Feign自定義配置與使用
這篇文章主要介紹了SpringCloud Feign自定義配置與使用,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
Java實(shí)現(xiàn)幾十萬(wàn)條數(shù)據(jù)插入實(shí)例教程(30萬(wàn)條數(shù)據(jù)插入MySQL僅需13秒)
這篇文章主要給大家介紹了關(guān)于Java如何實(shí)現(xiàn)幾十萬(wàn)條數(shù)據(jù)插入的相關(guān)資料,30萬(wàn)條數(shù)據(jù)插入MySQL僅需13秒,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-04-04
SpringCloud?Feign使用ApacheHttpClient代替默認(rèn)client方式
這篇文章主要介紹了SpringCloud?Feign使用ApacheHttpClient代替默認(rèn)client方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
logback?EvaluatorFilter日志過(guò)濾器源碼解讀
這篇文章主要為大家介紹了logback?EvaluatorFilter日志過(guò)濾器源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
如何在IDEA中對(duì) hashCode()和 equals() 利用快捷鍵快速進(jìn)行方法重寫
這篇文章主要介紹了如何在IDEA中對(duì) hashCode()和 equals() 利用快捷鍵快速進(jìn)行方法重寫,需要的朋友可以參考下2020-08-08
關(guān)于@JSONField和@JsonFormat的使用區(qū)別說(shuō)明
這篇文章主要介紹了關(guān)于@JSONField 和 @JsonFormat的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11

