Java進(jìn)階教程之String類(lèi)
之前的Java基礎(chǔ)系列中討論了Java最核心的概念,特別是面向?qū)ο蟮幕A(chǔ)。在Java進(jìn)階中,我將對(duì)Java基礎(chǔ)進(jìn)行補(bǔ)充,并轉(zhuǎn)向應(yīng)用層面。
大部分編程語(yǔ)言都能夠處理字符串(String)。字符串是有序的字符集合,比如"Hello World!"。在Java中,字符串被存儲(chǔ)為String類(lèi)對(duì)象。調(diào)用字符串對(duì)象的方法,可以實(shí)現(xiàn)字符串相關(guān)的操作。
String類(lèi)包含在java.lang包中。這個(gè)包會(huì)在Java啟動(dòng)的時(shí)候自動(dòng)import,所以可以當(dāng)做一個(gè)內(nèi)置類(lèi)(built-in class)。我們不需要顯式的使用import引入String類(lèi)。
創(chuàng)建字符串
我們之前使用類(lèi)來(lái)創(chuàng)建對(duì)象。需要注意的時(shí)候,創(chuàng)建String類(lèi)對(duì)象不需要new關(guān)鍵字。比如:
public class Test
{
public static void main(String[] args)
{
String s = "Hello World!";
System.out.println(s);
}
}
實(shí)際上,當(dāng)你寫(xiě)出一個(gè)"Hello World"表達(dá)式時(shí),內(nèi)存中就已經(jīng)創(chuàng)建了該對(duì)象。如果使用new String("Hello World!"),會(huì)重復(fù)創(chuàng)建出一個(gè)字符串對(duì)象。
An Object
String類(lèi)是唯一一個(gè)不需要new關(guān)鍵字來(lái)創(chuàng)建對(duì)象的類(lèi)。使用的時(shí)候需要注意。
字符串操作
可以用+實(shí)現(xiàn)字符串的連接(concatenate),比如:
"abc" + s
字符串的操作大都通過(guò)字符串的相應(yīng)方法實(shí)現(xiàn),比如下面的方法:
方法 效果
s.length() 返回s字符串長(zhǎng)度
s.charAt(2) 返回s字符串中下標(biāo)為2的字符
s.substring(0, 4) 返回s字符串中下標(biāo)0到4的子字符串
s.indexOf("Hello") 返回子字符串"Hello"的下標(biāo)
s.startsWith(" ") 判斷s是否以空格開(kāi)始
s.endsWith("oo") 判斷s是否以"oo"結(jié)束
s.equals("Good World!") 判斷s是否等于"Good World!"
==只能判斷字符串是否保存在同一位置。需要使用equals()判斷字符串的內(nèi)容是否相同。
s.compareTo("Hello Nerd!") 比較s字符串與"Hello Nerd!"在詞典中的順序,
返回一個(gè)整數(shù),如果<0,說(shuō)明s在"Hello Nerd!"之前;
如果>0,說(shuō)明s在"Hello Nerd!"之后;
如果==0,說(shuō)明s與"Hello Nerd!"相等。
s.trim() 去掉s前后的空格字符串,并返回新的字符串
s.toUpperCase() 將s轉(zhuǎn)換為大寫(xiě)字母,并返回新的字符串
s.toLowerCase() 將s轉(zhuǎn)換為小寫(xiě),并返回新的字符串
s.replace("World", "Universe") 將"World"替換為"Universe",并返回新的字符串
不可變對(duì)象
String類(lèi)對(duì)象是不可變對(duì)象(immutable object)。程序員不能對(duì)已有的不可變對(duì)象進(jìn)行修改。我們自己也可以創(chuàng)建不可變對(duì)象,只要在接口中不提供修改數(shù)據(jù)的方法就可以。
然而,String類(lèi)對(duì)象確實(shí)有編輯字符串的功能,比如replace()。這些編輯功能是通過(guò)創(chuàng)建一個(gè)新的對(duì)象來(lái)實(shí)現(xiàn)的,而不是對(duì)原有對(duì)象進(jìn)行修改。比如:
s = s.replace("World", "Universe");
右邊對(duì)s.replace()的調(diào)用將創(chuàng)建一個(gè)新的字符串"Hello Universe!",并返回該對(duì)象(的引用)。通過(guò)賦值,引用s將指向該新的字符串。如果沒(méi)有其他引用指向原有字符串"Hello World!",原字符串對(duì)象將被垃圾回收。
不可變對(duì)象
Java API
Java提供了許多功能強(qiáng)大的包。Java學(xué)習(xí)的一個(gè)重要方面是了解這些包以及其中包含的API(Application Programming Interface)。String類(lèi)定義在java.lang.String。你可以查詢(xún)下面的Oracle網(wǎng)址,來(lái)找到該類(lèi)的官方文檔:
http://docs.oracle.com/javase/6/docs/api/java/lang/String.html
該文檔中包含了String類(lèi)最全面的介紹。
事實(shí)上,API文檔中有豐富的內(nèi)容,你通過(guò)下面鏈接概覽:
http://docs.oracle.com/javase/6/docs/api/
- Java中char數(shù)組(字符數(shù)組)與字符串String類(lèi)型的轉(zhuǎn)換方法
- java對(duì)象轉(zhuǎn)換String類(lèi)型的三種方法
- java string類(lèi)的常用方法詳細(xì)介紹
- Java中String類(lèi)(字符串操作)的10個(gè)常見(jiàn)問(wèn)題和解決方法
- java string類(lèi)型轉(zhuǎn)換boolean類(lèi)型的方法
- Java String類(lèi)的常用方法匯總
- java String類(lèi)常用方法練習(xí)小結(jié)
- Java中字符數(shù)組、String類(lèi)、StringBuffer三者之間相互轉(zhuǎn)換
- java源碼解析之String類(lèi)的compareTo(String otherString)方法
- Java String類(lèi)詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- java String類(lèi)功能、原理與應(yīng)用案例【統(tǒng)計(jì)、判斷、轉(zhuǎn)換等】
- Java String類(lèi)簡(jiǎn)單用法實(shí)戰(zhàn)示例【字符串輸出、比較】
相關(guān)文章
SpringBoot使用Async注解失效原因分析及解決(spring異步回調(diào))
這篇文章主要介紹了SpringBoot使用Async注解失效原因分析及解決(spring異步回調(diào)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10Java 入門(mén)圖形用戶(hù)界面設(shè)計(jì)之單選按鈕
圖形界面(簡(jiǎn)稱(chēng)GUI)是指采用圖形方式顯示的計(jì)算機(jī)操作用戶(hù)界面。與早期計(jì)算機(jī)使用的命令行界面相比,圖形界面對(duì)于用戶(hù)來(lái)說(shuō)在視覺(jué)上更易于接受,本篇精講Java語(yǔ)言中關(guān)于圖形用戶(hù)界面的單選按鈕2022-02-02深入解析System.load 與 System.loadLibrary
以下是對(duì)System.load與System.loadLibrary進(jìn)行了詳細(xì)的分析介紹。需要的朋友可以過(guò)來(lái)參考下2013-08-08IDEA2020.1個(gè)性化設(shè)置的實(shí)現(xiàn)
這篇文章主要介紹了IDEA2020.1個(gè)性化設(shè)置的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08Java實(shí)現(xiàn)將html字符串插入到PPT幻燈片
Java后端代碼操作PPT幻燈片時(shí),可直接在幻燈片中繪制形狀,并在形狀中添加文本字符串內(nèi)容。本篇文章主要介紹通過(guò)java實(shí)現(xiàn)將html字符串添加到PPT幻燈片的的方法,可添加文字、圖片、視頻、音頻等。以下是具體方法和步驟。2021-11-11Spring Boot整合elasticsearch的詳細(xì)步驟
這篇文章主要介紹了Spring Boot整合elasticsearch的詳細(xì)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04