<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 一、概述 一般程序需要處理大量文本數據,Java 語言的文本數據被保存為字符或字符串類型。 * Java 提供了 String 類來創建和操作字符串。但是,String 類是不可變類,即一旦一個 String 對象被創建以后,包含在這個對象中的字符序列是不可改變的,直至這個對象被銷毀。 * Java 同時提供了兩個可變字符串類 StringBuffer 和 StringBuilder,兩者功能基本相似,方法也差不多。不同的是,StringBuffer 是線程安全的,而 StringBuilder 則沒有實現線程安全功能,所以性能略高。 因此在通常情況下,如果需要創建一個內容可變的字符串對象,則應該優先考慮使用 StringBuilder 類。 ## 二、String 類 在 Java 中定義一個字符串最簡單的方法是用雙引號把它包圍起來。這種用雙引號括起來的一串字符實際上都是 String 對象,如字符串`Hello`在編譯后即成為 String 對象。 不論使用哪種形式創建字符串,字符串對象一旦被創建,其值是不能改變的,但可以使用其他變量重新賦值的方式進行更改。 ### 2.1 直接定義字符串 直接定義字符串是指使用雙引號表示字符串中的內容,具體方法是用字符串常量直接初始化一個 String 對象,如下: ``` String str = "hello, world"; ``` ### 2.2 使用 String 類定義 * `String()`初始化一個新創建的 String 對象,表示一個空字符序列。 * `String(String original)`初始化一個新創建的 String 對象,使其表示一個與參數相同的字符序列。 * `String(char[] value)`分配一個新的字符串,將參數中的字符數組元素全部變為字符串。 ### 2.3 String 常用方法 * `int length()`返回當前字符串的長度 * `int indexOf(int ch)`查找 ch 字符在該字符串中第一次出現的位置 * `int indexOf(String str)`查找 str 子字符串在該字符串中第一次出現的位置 * `int lastIndexOf(int ch)`查找 ch 字符在該字符串中最后一次出現的位置 * `int lastIndexOf(String str)`查找 str 子字符串在該字符串中最后出現的位置 * `char charAt (int index)`獲取字符串中指定位置的字符 * `boolean equals(Object obj)`將該字符串與指定對象比較,返回 true 或 false * `boolean equalsIgnoreCase(String obj)`將該字符串與指定對象比較(忽略大小寫)返回 true 或 false * `String ?substring(int beginIndex)`獲取從 beginIndex 位置開始到結束的子字符串 * `String substring(int beginIndex, int endIndex)`獲取從 beginIndex 位置開始到 endIndex - 1位置的子字符串 * `String toLowerCase()`返回一個新字符串,將原始字符串中的大寫字母改為小寫 * `String toUpperCase()`返回一個新字符串,將原始字符串中的小寫字母改成大寫 * `String trim()`返回一個新字符串,刪除了原始字符串頭部和尾部的空格 * `byte[] getBytes()`將該字符串轉換為 byte 數組 【閱讀】給出如下語句,以下結果是() ``` String str = "Hello, Dodoke"; str = str.substring(2, 5); char ch = str.charAt(str.length()); System.out.println(ch); ``` 【閱讀】給出如下語句:以下結果是() ``` String str = "abcdefg"; char ch = str.substring(3, 6).charAt(1); System.out.println(ch); ``` 【選擇】關于字符串的 equals() 和 compareTo() 方法,選項中描述錯誤的是()(選擇一項) ``` A 方法 equals() 比較兩個字符串內容是否相等 B 方法 compareTo() 比較兩個字符串大小 C 方法 equals() 返回值是 boolean 類型的值 D 方法 compareTo() 返回值是 String 類型的值 ``` 【編程】使用 String 類常用方法完成字符串處理。 ``` public class StringDemo { public static void main(String[] args) { /** * 已知字符串"abcdefg",使之經過處理得到字符串"CDE" * 并進一步將"DE"替換為",得到結果:CMM */ } } ``` 【選擇】已知字符串的定義如下:以下哪個語句不能將字符串轉換成 byte 數組()(選擇一項) ``` String str = "Hello, Dodoke"; ``` ``` A byte[] arr = str.getBytes(); B byte[] arr = str.getBytes("GBK"); C byte[] arr = str.getBytes("UTF-8"); D byte[] arr; str.getBytes(arr, "GBK"); ``` 【選擇】給出如下語句:下面哪個選項返回值為 true()(選擇一項) ``` String s1 = new String("dodoke"); String s2 = new String("dodoke"); char c[] = {'d', 'o', 'd', 'o', 'k', 'e'}; ``` ``` A s1.equals(s2); B s1.equals(c); C s1.equals(new String()); D s1 == c; ``` 【選擇】下列運行結果是 false 的是()(選擇一項) ``` String str1 = "dodoke"; String str2 = "dodoke"; String str3 = new String("dodoke"); ``` ``` A System.out.println(str1.equals(str2)); B System.out.println(str1.equals(str3)); C System.out.println(str1 == str2); D System.out.println(str1 == str3); ``` ### 2.4 字符串的不可變性 String 類是不可變類,即一旦一個 String 對象被創建以后,包含在這個對象中的字符序列是不可改變的,直至這個對象被銷毀。 【選擇】已知如下代碼:以下哪個說法是正確的()(選擇兩項) ``` String str1 = new String("hello"); String str2 = "hello"; System.out.println(str1.concat(str2)); System.out.println(str1); ``` ``` A str1.equals(str2) 的結果為 true B 輸出結果為:hellohello hellohello C str1 == str2 的結果為 true D 輸出結果為:hellohello hello ``` ## 三、StringBuilder 類 Java 提供了兩個可變字符串類 StringBuffer 和 StringBuilder。創建 StringBuilder 類的對象后可以隨意修改字符串的內容。每個 StringBuilder 類的對象都能夠存儲指定容量的字符串,如果字符串的長度超過了 StringBuilder 類對象的容量,則該對象的容量會自動擴大。 ### 3.1 StringBuilder 構造方法 StringBuilder 類提供了 3 個構造方法來創建一個字符串,如下所示: * `StringBuilder()`構造一個空的字符串緩沖區,并且初始化為 16 個字符的容量。 * `StringBuilder(int length)`創建一個空的字符串緩沖區,并且初始化為指定長度 length 的容量。 * `StringBuilder(String str)`創建一個字符串緩沖區,并將其內容初始化為指定的字符串內容 str,字符串緩沖區的初始容量為 16 加上字符串 str 的長度。 ``` // 定義一個空的字符串緩沖區,含有16個字符的容量 StringBuilder str1 = new StringBuilder(); // 定義一個含有10個字符容量的字符串緩沖區 StringBuilder str2 = new StringBuilder(10); // 定義一個含有(16+4)的字符串緩沖區,"青春無悔"為4個字符 StringBuilder str3 = new StringBuilder("青春無悔"); /** * 輸出字符串的容量大小 * capacity()方法返回字符串的容量大小 */ System.out.println(str1.capacity()); //輸出 16 System.out.println(str2.capacity()); //輸出 10 System.out.println(str3.capacity()); //輸出 20 ``` ### 3.2 StringBuilder 常用方法 * `append(String str)`:用于向原有 StringBuilder 對象中追加字符串 ``` StringBuilder builder = new StringBuilder("hello,"); //創建一個 StringBuilder 對象 String str = "World!"; buffer.append(str); //向 StringBuilder 對象追加 str 字符串 System.out.println(buffer.substring(0)); //輸出:Hello,World! ``` * `setCharAt(int index, char ch)`:用于在字符串的指定索引位置替換一個字符 ``` StringBuilder sb = new StringBuilder("hello"); sb.setCharAt(1,'E'); System.out.println(sb); //輸出:hEllo sb.setCharAt(0,'H'); System.out.println(sb); //輸出:HEllo sb.setCharAt(2,'p'); System.out.println(sb); //輸出:HEplo ``` * `reverse()`:用于將字符串序列用其反轉的形式取代 ``` StringBuilder sb = new StringBuilder("java"); sb.reverse(); System.out.println(sb); //輸出:avaj ``` * `deleteCharAt(int index)`:用于移除序列中指定位置的字符 ``` StringBuilder sb = new StringBuilder("She"); sb.deleteCharAt(2); System.out.println(sb); //輸出:Se ``` * `delete(int start, int end)`:用于移除序列中子字符串的字符 ``` StringBuilder sb = new StringBuilder("hello jack"); sb.delete(2,5); System.out.println(sb); //輸出:he jack sb.delete(2,5); System.out.println(sb); //輸出:heck ``` 【閱讀】給出如下語句,代碼的輸出結果是() ``` StringBuilder s = new StringBuilder("abcdefg"); s.delete(2, 4).insert(3, "CD"); System.out.println(s.toString()); ``` 【編程】給出如下語句:第三行填寫什么代碼,可以得到輸出結果`123abc 123abc` ``` StringBuilder sb1 = new StringBuilder("123"); String s1 = "123"; // ... System.out.println(sb1 + "" + s1); ``` 【編程】定義一個字符串,利用 StringBuilder 完成如下效果。 ``` 歡迎來到dodoke 刪除插入后:你好,dodoke 替換后:歡迎來到dodoke ``` ``` public class StringTest { public static void main(String[] args) { // 定義一個字符串"歡迎來到" // 在"歡迎來到"后面添加內容,將字符串變成"歡迎來到dodoke" // 使用delete方法刪除"歡迎來到",然后插入“你好!” // 將字符串變成“你好,dodoke” // 使用replace方法替換 } } ``` 【編程】定義一個字符串,使用StringBuilder的常用方法對字符串進行操作。 ``` public class StringTest { public static void main(String[] args) { // 定義字符串"abc" // 經過處理得到字符串"fed---cba" // 進一步變換得到字符串"fedcba" } } ``` 【閱讀】給出如下語句,代碼的輸出結果是() ``` public class Test { public static void main(String[] args) { Integer x = 400; Integer y = x; x++; StringBuilder sb1 = new StringBuilder("123"); StringBuilder sb2 = sb1; sb1.append("5"); System.out.println((x == y) + " " + (sb1 == sb2)) } } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看