- Java與Android移動應用開發:技術、方法與實踐
- 曹化宇
- 1524字
- 2019-12-06 15:39:19
6.1 String類
代碼中,每個字符串都是String類的實例,可以通過String類的成員進行一系列的操作。下面介紹一些關于字符串的常見操作。
6.1.1 字符串的運算與比較
字符串的運算,最常見的就是通過+運算符來連接多個字符,如下面的代碼所示。

比較兩個字符串內容是否相同時,可以使用String對象的equals()方法,如下面的代碼所示。

比較兩個字符串時,會區分字母的大小寫。如果需要忽略大小寫,可以將字符串統一轉換為大寫或小寫后再進行比較。
6.1.2 常用方法
字符串中的字符序列,可以使用從0開始的索引來訪問,第一個字符的索引為0,第二個字符的索引為1,以此類推。獲取字符串中指定位置的字符時,可以使用charAt()方法,如下面的代碼所示。

indexOf()方法在字符串中查找指定的內容,如果找到則返回第一次出現的索引值,如果沒有找到則返回-1,如下面的代碼所示。

相關的方法是lastIndexOf()方法,它返回指定內容最后一次出現的索引值,如下面的代碼所示。

需要截取字符串內容時,可以使用substring()方法,如下面的代碼所示。

示例中,請注意substring()方法的參數使用,第一個參數指定開始截取的索引位置,當不指定第二個參數時,會從指定位置截取全部內容。第二個參數指定截取內容結束位置的后一個索引值,換一個方式說,當使用substring(i, n)方法截斷字符串內容時,會截取從索引i開始的n-i個字符。
分隔字符串時使用split()方法,如下面的代碼所示。

代碼執行結果如圖6-1所示。
split()方法中,參數指定分隔內容,可以是字符串,也可以使用正則表達式內容,方法會返回分隔后的字符串數組。第8章會詳細討論數組和集合的應用,本章稍后會有關于正則表達式的討論。
此外,split()方法還可以使用第2個參數,其功能是指定分隔的成員數量,如下面的代碼所示。

代碼執行結果如圖6-2所示。

圖6-1 分隔字符串

圖6-2 分隔指定數量的字符串
當判斷字符串是否以指定內容開始時(字符串前綴),使用startsWith()方法,如下面的代碼所示。

相應地,當判斷字符串是否以指定內容(后綴)結束時,使用endsWith()方法。
trim()方法用于刪除字符串開始位置和結束位置的空白字符(如空格等),并返回新的字符串對象。
toUpperCase()方法將字符串中的字母全部轉換為大寫,并返回新的字符串對象。
toLowerCase()方法將字符串中的字母全部轉換為小寫,并返回新的字符串對象。
valueOf()方法有多個重載版本,用于將不同類型的數據轉換為String類型。
format()方法的功能比較強大,可以將多種不同類型的數據組合為字符串。方法中,第一個參數為主內容字符串,其中可以包含一系列不同類型數據的占位符,從第二個參數開始的數據則需要一一對應這些占位符。其中,常用的占位符有以下幾個。
□ %b,顯示布爾數據。
□ %d,顯示整數。
□ %x,顯示十六進制數。
□ %o,顯示八進制數。
□ %f,顯示浮點數,可以指定小數位數量,如%.2f指定顯示兩位小數。
□ %s,顯示字符串。
下面的代碼演示了format()方法的使用。
public static void main(String[] args) { String name = "Tom"; int age = 16; double height = 1.78; String s = String.format("%s今年%d歲,身高%.2f米",name,age,height); System.out.println(s); }
代碼執行結果如圖6-3所示。

圖6-3 格式化字符串
6.1.3 將字符串轉換為其他類型
要把字符串轉換為基本數據類型的包裝對象,可以使用這些包裝類中定義的parseXXX()方法,如下面的代碼所示。
public static void main(String[] args) { String s = "123"; System.out.println(Integer.parseInt(s)); System.out.println(Float.parseFloat(s)); }
代碼執行結果如圖6-4所示。
需要說明的是,如果字符串的內容不能正確地轉換為目標類型,就會產生異常,如下面的代碼所示。

圖6-4 把字符串轉換為基本數據類型
public static void main(String[] args) { String s = "ddd"; int x = Integer.parseInt(s); // 錯誤 System.out.println(x); }
實際應用中,若要無異常地獲取目標類型數據,可以封裝自己的轉換代碼。接下來,在CC類中封裝一些常用的方法,如下面的代碼(CC.java文件)所示。

實際應用中,可以通過類似下面的代碼使用這些方法。
public static void main(String[] args) { String s1 = "ddd"; String s2 = "12.3"; System.out.println(CC.toInt(s1)); System.out.println(CC.toInt(s2)); System.out.println(CC.toDbl(s2)); }
代碼執行結果如圖6-5所示。
代碼中,如果字符串的內容不能成功轉換為目標類型數據,就會返回目標類型的默認值,這樣可以保證任何情況下都有一個可用的值。當然,也可以在項目中根據實際情況進行處理。

圖6-5 封裝類型轉換方法
- 現代C++編程:從入門到實踐
- Raspberry Pi for Python Programmers Cookbook(Second Edition)
- iOS面試一戰到底
- 案例式C語言程序設計
- Boost C++ Application Development Cookbook(Second Edition)
- Designing Hyper-V Solutions
- MATLAB實用教程
- R Data Analysis Cookbook(Second Edition)
- UML 基礎與 Rose 建模案例(第3版)
- 領域驅動設計:軟件核心復雜性應對之道(修訂版)
- Unity 2017 Mobile Game Development
- Python:Deeper Insights into Machine Learning
- 物聯網系統架構設計與邊緣計算(原書第2版)
- XML程序設計(第二版)
- Pandas 1.x Cookbook