5.7-全棧Java筆記:字符串String的常用方法

字符串String

String基礎

1)String位于java.lang包中,Java程序默認導入java.lang包。

2)ava字符串就是Unicode字符序列,例如串“Java”就是4個Unicode字符J、a、v、a組成的。

3)Java沒有內(nèi)置的字符串類型,而是在標準Java類庫中提供了一個預定義的類String,每個用雙引號括起來的字符串都是String類的一個實例。? ? ? ? ??

【示例1String類的實例

String e =?""? ; //?空字符串a(chǎn)n empty string

??? String greeting = " Hello World ? ";?

Java允許使用符號"+"把兩個字符串連接起來

【示例2】字符串連接

String s1 = "Hello";

String s2 = "World! ";

??? String s = s1 + s2; //HelloWorld!

符號"+"把兩個字符串按給定的順序連接在一起,并且是完全按照給定的形式。

當"+"運算符兩側(cè)的操作數(shù)中只要有一個是字符串(String)類型,系統(tǒng)會自動將另一個操作數(shù)轉(zhuǎn)換為字符串然后再進行連接。

【示例3"+"連接符

int age = 18;

String s = "age is" + age;? //s賦值為age is 18

//這種特性通常被用在輸出語句中:

System.out.println("age is" + age);

String類和常量池

1)全局常量池在每個VM中只有一份,存放的是字符串常量的引用值。

2)class常量池是在編譯的時候每個class都有的,在編譯階段,存放的是常量的符號引用。

?3)運行時常量池是在類加載完成之后,將每個class常量池中的符號引用值轉(zhuǎn)存到運行時常量池中,也就是說,每個class都有一個運行時常量池,類在解析之后,將符號引用替換成直接引用,與全局常量池中的引用值保持一致。

閱讀API文檔

1)API文檔如何閱讀

??進入JDK安裝目錄下面的doc目錄,點擊index.html即可打開API文檔。

圖1 API文檔

2)eclipse中將鼠標放到類和方法上,即可看到相關(guān)的注釋說明;再按下F2即可將注釋窗口固定。

字符串類常用的方法

字符串是我們最常使用的類。字符串類的方法我們必須非常熟悉!我們列出常用的方法,請大家熟悉。



char charAt(int ? index)

返回字符串中第index個字符

boolean ? equals(String other)

如果字符串與other相等,返回true

boolean ? equalsIgnoreCase(String other)

如果字符串與other相等(忽略大小寫),則返回true

int ? indexOf(String str)

返回從頭開始查找第一個子字符串str在字符串中的索引位置。如果未找到子字符串str,則返回-1

lastIndexOf()

返回從尾開始查找第一個子字符串str在字符串中的索引位置。如果未找到子字符串str,則返回-1

int length()

返回字符串的長度

String ? replace(char oldChar,char newChar)

返回一個新串,它是通過用?newChar?替換此字符串中出現(xiàn)的所有oldChar而生成的

boolean startsWith(String ? prefix)

如果字符串以prefix開始,則返回true

boolean endsWith(String ? prefix)

如果字符串以prefix結(jié)尾,則返回true

String substring(int ? beginIndex)

返回一個新字符串,該串包含從原始字符串beginIndex到串尾

String substring(int ? beginIndex,int endIndex)

返回一個新字符串,該串包含從原始字符串beginIndex到串尾或endIndex-1的所以字符

String toLowerCase()

返回一個新字符串,該串將原始字符串中的所有大寫字母改成小寫字母。

String toUpperCase()

返回一個新字符串,該串將原始字符串中的所有小寫字母改成大寫字母。

String trim()

返回一個新字符串,該串刪除了原始字符串頭部和尾部的空格。

【示例4String類常用方法一

public class ? StringTest1 {

??? public static void main(String[] args) {

?????? String s1 = "core java";

?????? String s2 = "Core Java";

?????? System.out.println(s1.charAt(4));

?????? System.out.println(s2.length());

?????? System.out.println(s1.equals(s2));

?????? System.out.println(s1.equalsIgnoreCase(s2));

?????? System.out.println(s1.indexOf("java"));

?????? System.out.println(s1.indexOf("apple"));

?????? String s = s1.replace(' ', '&');

?????? System.out.println("result ? is :" + s);

??? }

}

【示例5String類常用方法二

public class ? StringTest2 {

??? public static void main(String[] args) {

?????? String s = "";???

?????? String s1 = "How are you?";

?????? System.out.println(s1.startsWith("How"));?

?????? System.out.println(s1.endsWith("you")); ?

?????? s = s1.substring(4);?????? System.out.println(s);

?????? s = s1.substring(4,7);?? System.out.println(s);

?????? s = s1.toLowerCase();????? System.out.println(s);?

?????? s= s1.toUpperCase(); System.out.println(s);????

?????? String s2 = "? How old are you!! " ;

?????? s = s2.trim();?? System.out.println(s);?

?????? System.out.println(s2); //???

??? }

}

字符串相等的判斷

1)equals方法用來檢測兩個字符串內(nèi)容是否相等。如果字符串s和t內(nèi)容相等,則s.equals(t)返回true,否則返回false。

2)要測試兩個字符串除了大小寫區(qū)別外是否是相等的,需要使用equalsIgnoreCase方法。

3)判斷字符串是否相等不要使用"=="?

【示例6】忽略大小寫的字符串比較

"Hello".equalsIgnoreCase("hellO");//true?

【示例7】字符串的比較"=="equals()方法

public?class?TestStringEquals ? {

????public?static?void?? main(String[] args) {

?????? String g1="北京尚學堂";

?????? String g2="北京尚學堂";

?????? String g3 =?new?? String("北京尚學堂");

?????? System.out.println(g1==g2); ??//true指向同樣的字符串常量對象

?????? System.out.println(g1==g3); ??//false? g3是新創(chuàng)建的對象

?????? System.out.println(g1.equals(g3)); ?//true? g1和g3里面的字符串內(nèi)容是一樣的

??? }

}

g1、g2、g3變量的內(nèi)存示意圖:

? ?示例7?內(nèi)存分析圖





「全棧Java筆記」是一部能幫大家從零到一成長為全棧Java工程師系列筆記。筆者江湖人稱 Mr. G,10年Java研發(fā)經(jīng)驗,曾在神州數(shù)碼、航天院某所研發(fā)中心從事軟件設計及研發(fā)工作,從小白逐漸做到工程師、高級工程師、架構(gòu)師。精通Java平臺軟件開發(fā),精通JAVAEE,熟悉各種流行開發(fā)框架。


筆記包含從淺入深的六大部分:

A-Java入門階段

B-數(shù)據(jù)庫從入門到精通

C-手刃移動前端和Web前端

D-J2EE從了解到實戰(zhàn)

E-Java高級框架精解

F-Linux和Hadoop?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容