官术网_书友最值得收藏!

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 封裝類型轉換方法

主站蜘蛛池模板: 教育| 灵宝市| 高清| 永寿县| 泰顺县| 谷城县| 泸溪县| 昭平县| 威信县| 万宁市| 彭水| 武平县| 乌审旗| 新郑市| 蒲江县| 百色市| 合川市| 红原县| 上林县| 衢州市| 大竹县| 青田县| 灵山县| 建德市| 黄陵县| 桃江县| 上林县| 金溪县| 谷城县| 颍上县| 庄河市| 扶余县| 扎赉特旗| 景谷| 田阳县| 谷城县| 保定市| 定远县| 长子县| 和平县| 砀山县|