- Java 開發從入門到精通(第2版)
- 扶松柏 王洋 陳小玉
- 2906字
- 2020-04-14 15:06:04
3.4 字符串
知識點講解:

字符串(String)是由0個或多個字符組成的有限序列,是編程語言中表示文本的數據類型。通常以字符串的整體作為操作對象,例如在字符串中查找某個子串、求取一個子串、在字符串的某個位置插入一個子串以及刪除一個子串等。兩個字符串相等的充要條件是:長度相等,并且各個對應位置的字符都相等。假設p、q是兩個字符串,求q在p中首次出現的位置的運算叫作模式匹配。字符串的兩種最基本的存儲方式是順序存儲和鏈接存儲。
3.4.1 字符串的初始化
在Java程序中,使用關鍵字new來創建String實例,具體格式如下所示。
String a=new String( );
上面這行代碼創建了一個名為String的類,并把它賦給變量,但它此時是一個空的字符串。接下來就為這個字符串賦值,賦值代碼如下所示。
a="I am a person Chongqing"
在Java程序中,我們將上述兩句代碼合并,就可以產生一種簡單的字符串表示方法。
String s=new String ("I am a person Chongqing");
除了上面的表示方法,還有表示字符串的如下一種形式。
String s= ("I am a person Chongqing");
實例3-16
初始化一個字符串
源碼路徑:daima\3\Stringone.java
實例文件Stringone.java的主要實現代碼如下所示。
public static void main(String[] args) { ① String str = "上邪"; ② System.out.println("OK"); ③ String cde = "別人笑我太瘋癲"; ④ System.out.println(str + cde); }
拓展范例及視頻二維碼
范例3-16-01:格式化一個字符串
源碼路徑:演練范例\3-16-01\
范例3-16-02:擴展賦值運算符的功能
源碼路徑:演練范例\3-16-02\

行①定義一個字符串變量str,設置str的初始值是“上邪”。
行②使用println()函數輸出字符串“OK”。
行③定義一個字符串變量cde,設置cde的初始值是“別人笑我太瘋癲”。
行④使用println()函數輸出字符串str和cde的組合。
執行后的結果如圖3-18所示。

圖3-18 執行結果
注意:字符串并不是原始的數據類型,而是一種復雜的數據類型,對它進行初始化的方法不止一種,但也沒有規定哪種方法最優秀,用戶可以根據自己的習慣使用。
3.4.2 String類
在Java程序中可以使用String類來操作字符串,在該類中有許多方法可以供程序員使用。
1.索引
在Java程序中,通過索引函數charAt()可以返回字符串中指定索引的位置。讀者需要注意的是,這里的索引數字從零開始,使用格式如下所示。
public char charAt(int index)
2.追加字符串
追加字符串函數concat()的功能是在字符串的末尾添加字符串,追加字符串是一種比較常用的操作,具體語法格式如下所示。
Public String concat (String S)
實例3-17
使用索引方法
源碼路徑:daima\3\suoyin.java
實例文件suoyin.java的主要實現代碼如下所示。
public class suoyin { public static void main(String args[]){ ① String x="dongjiemeili"; ② System.out.println(x.charAt(5)); } }
拓展范例及視頻二維碼
范例3-17-01:使用追加方法
源碼路徑:演練范例\3-17-01\
范例3-17-02:貨幣金額的大寫形式
源碼路徑:演練范例\3-17-02\

行①定義一個字符串變量x,設置x的初始值是“dongjiemeili”。
行②使用println()函數輸出字符串變量x中索引值為5的字母。因為下標從“0”開始,所以初學者可能會理解為字母“j”,可真正的結果并不是,下標為“5”,實際上是第6個字母。執行后的結果如圖3-19所示。

圖3-19 執行結果
3.比較字符串
比較字符串函數equalsIgnoreCase()的功能是對兩個字符串進行比較,看是否相同。如果相同,返回一個值true;如果不相同,返回一個值false。格式如下。
public Boolean equalsIgnoreCase(String s)
4.取字符串長度
在String類中有一個方法可以獲取字符串的長度,語法格式如下所示。
public int length ( )
實例3-18
使用字符串比較方法
源碼路徑:daima\3\bijiao.java
實例文件bijiao.java的主要實現代碼如下所示。
public static void main(String args[]){ ① String x="student"; ② String xx="STUDENT"; ③ String y="student"; ④ String z="T"; ⑤ System.out.println(x.equalsIgnoreCase(xx)); ⑥ System.out.println(x.equalsIgnoreCase(y)); ⑦ System.out.println(x.equalsIgnoreCase(z)); }
拓展范例及視頻二維碼
范例3-18-01:使用求字符串長度的方法
源碼路徑:演練范例\3-18-01\
范例3-18-02:用String類格式化當前日期
源碼路徑:演練范例\3-18-02\

行①②③④定義4個字符串變量x、xx、y和z,設置x的初始值是“student”,設置xx的初始值是“STUDENT”,設置y的初始值是“student”,設置z的初始值是“T”。
行⑤使用函數equalsIgnoreCase()比較x和xx的值是否相等,然后使用println()函數輸出比較結果。
行⑥使用函數equalsIgnoreCase()比較x和y的值是否相等,然后使用println()函數輸出比較結果。
行⑦使用函數equalsIgnoreCase()比較x和z的值是否相等,然后使用println()函數輸出比較結果。
執行后的結果如圖3-20所示。

圖3-20 比較字符串的結果
5.替換字符串
替換是兩個動作,第一個是查找,第二個是替換。在Java中實現替換字符串的方法十分簡單,只需要使用replace()方法即可實現。此方法的聲明格式如下所示。
public String replace (char old, char new)
6.字符串的截取
有時候,經常需要從長的字符串中截取一段字符串,此功能可以通過substring()方法實現,此方法有兩種語法格式。
第一種格式如下。
public String substring(int begin)
第二種格式如下。
public String substring (int begin, int end)
實例3-19
使用字符串替換方法
源碼路徑:daima\3\Tihuan.java
實例文件Tihuan.java的主要實現代碼如下所示。
public static void main(String args[]){ ① String x="我想我要走了"; ② String y=x.replace(’走’, ’去’); ③ System.out.println(y); }
拓展范例及視頻二維碼
范例3-19-01:使用字符串截取方法
源碼路徑:演練范例\3-19-01\
范例3-19-02:字符串的大小寫轉換
源碼路徑:演練范例\3-19-02\

行①定義一個字符串變量x,設置x的初始值是“我想我要走了”。
行②定義一個字符串變量y,設置y的初始值是將x中的“走”替換為“去”之后的值。
行③使用println()函數輸出變量y的值。執行后的結果如圖3-21所示。

圖3-21 替換字符串的結果
7.字符串大小寫互轉
許多時候需要對字符串中的字母進行轉換,在String類里,用戶可以使用專用方法進行互換。將大寫字母轉換成小寫字母的方法的語法格式如下所示。
public String toLowerCase ( )
將小寫字母轉換成大寫字母的方法的語法格式如下所示。
Public String toUpperCase ( )
8.消除字符串中的空格字符
在字符串中可能有空白字符,有時在一些特定的環境中并不需要這樣的空白字符,此時我們可以使用trim()方法去除空白,此方法的語法格式如下所示。
pbulic String trim ( )
實例3-20
將大寫字母轉換成小寫字母
源碼路徑:daima\3\Daxiao1.java
實例文件Daxiao1.java的主要實現代碼如下所示。
public static void main(String args[]){ ① String x="I LOVE YoU! ! "; //字母大小寫轉換 ② String y=x.toLowerCase(); ③ System.out.println(x); ④ System.out.println(y); }
拓展范例及視頻二維碼
范例3-20-01:將小寫字母轉換成大寫字母
源碼路徑:演練范例\3-20-01\
范例3-20-02:使用trim()方法
源碼路徑:演練范例\3-20-02\

行①定義一個字符串變量x,設置x的初始值是“I LOVE YoU!!”。
行②定義一個字符串變量y,設置y的初始值是將x中的字母都轉換為小寫后的值。
行③④使用println()函數分別輸出變量x和y的值。執行后的結果如圖3-22所示。

圖3-22 執行結果
3.4.3 StringBuffer類
StringBuffer類是Java中另一個重要的操作字符串的類,當需要對字符串進行大量的修改時,使用StringBuffer類是最佳選擇。接下來將詳細講解StringBuffer類中的常用方法。
1.追加字符
在StringBuffer類中實現追加字符功能的方法的語法格式如下所示。
public synchronized StringBuffer append(boolean b)
2.插入字符
前面的字符追加方法總是在字符串的末尾添加內容,倘若需要在字符串中添加內容,就需要使用方法insert(),語法格式如下所示。
public synchronized StringBuffer insert(int offset, String s)
上述語法格式的含義是:將第2個參數的內容添加到第1個參數指定的位置,換句話說,第1個參數表示要插入的起始位置,第2個參數是需要插入的內容,可以是包括String在內的任何數據類型。
3.顛倒字符
字符顛倒方法能夠將字符顛倒,例如“我是誰”,顛倒過來就變成“誰是我”,很多時候需要顛倒字符。字符顛倒方法reverse()的語法格式如下所示。
public synchronized StringBuffer reverse( )
實例3-21
使用字符追加函數
源碼路徑:daima\3\Zhui1.java
實例文件Zhui1.java的主要實現代碼如下所示。
public static void main(String args[]){ ① StringBuffer x1 = new StringBuffer("金山 WPS辦公"); ② x1.append(",中國人的選擇"); ③ System.out.println(x1); ④ StringBuffer x2 = new StringBuffer("WPS"); ⑤ x2.append(2009); ⑥ System.out.println(x2); }
拓展范例及視頻二維碼
范例3-21-01:替換指定的文本字符
源碼路徑:演練范例\3-21-01\
范例3-21-02:使用字符顛倒方法reverse()
源碼路徑:演練范例\3-21-02\

行①定義StringBuffer對象x1,設置x1的初始值是“金山WPS辦公”。
行②在x1的后面使用函數append()追加字符串“中國人的選擇”。
行③使用println()函數輸出x1的值。
行④定義StringBuffer對象x2,設置x2的初始值是“WPS”。
行⑤在x2的后面使用函數append()追加數字“2009”。
行⑥使用println()函數輸出x2的值。執行后的結果如圖3-23所示。

圖3-23 追加字符的結果
- 演進式架構(原書第2版)
- Getting Started with Citrix XenApp? 7.6
- Building a Game with Unity and Blender
- 程序員面試算法寶典
- Flask Web開發入門、進階與實戰
- Clojure for Domain:specific Languages
- Cassandra Data Modeling and Analysis
- Windows Phone 7.5:Building Location-aware Applications
- Microsoft Azure Storage Essentials
- Creating Stunning Dashboards with QlikView
- Visual Studio Code 權威指南
- Building Dynamics CRM 2015 Dashboards with Power BI
- Moodle 3 Administration(Third Edition)
- JBoss AS 7 Development
- Scratch 3.0少兒積木式編程(6~10歲)