<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ### 概述 1. Java 程序中的所有字符串字面值(如 "abc" )都作為此類的實例實現 . 2. String類的實例是引用類型 . 3. 字符串是常量,一旦創建,不能改變. 4. 字符串本質是一個char數組 . 5. 因為String類重寫了toString所以打印字符串對象的時候,顯示的不是內存地址而是一個char數組 . ### 詳解 ~~~ String str1 = new String("abc"); String str2 = "abc"; //虛擬機會尋找內存中是否已經存在該字符串,存在即不建立新的對象了 . System.out.println(str1 == str2); //false , 這里比較的是內存地址 System.out.println(str1.equals(str2)); //true, 這里比較的是字符串的值 . ~~~ 為什么結果不相同呢 ? ~~~ String str = new String("abc") //在這里實際上創建了兩個對象,一個是String類本身對象, 還有一個就是"abc"這個對象 ,"abc"在內存中是以數組的形式存在的 . ~~~ ### String構造方法 #### byte[] 構造器 ,只有字節數組才查詢編碼表 ~~~ public static void main(String[] args) { byte[] bytes = {97,98,99,100}; String str = new String(bytes); System.out.println(str); } ~~~ 結果 ~~~ abcd ~~~ 如果是正數就走ascii編碼表, 如果是負數,就走GBK,漢字的編碼就是負數,漢字是兩個字節存儲的,兩個字節拼出一個漢字, 如果是一個字節就是"?"號 . ### char[] 構造器 ~~~ public static void main(String[] args) { char[] ch = {'a','b','c','d'}; String str = new String(ch); System.out.println(str); } ~~~ 結果 ~~~ abcd ~~~ ### 常用方法 ~~~ length() //返回字符串長度 ~~~ ~~~ substring(起始索引,結束索引) //結束索引可以不寫,返回新的字符串截取一部分,因為字符串是常量,不能改動原有的字符串 ~~~ ~~~ startsWith("xxx") //是否為指定字符串前綴開始,可以為多個 ~~~ ~~~ endsWith("xxx") //是否為指定字符串后綴結束,可以為多個 ~~~ ~~~ contains("xxx") //是否包含指定字符串 ~~~ ~~~ indexOf('x') //查找字符在字符串中第一次出現的索引, 沒有返回-1 ~~~ ~~~ getBytes() //將字符串轉成字節數組 ~~~ ~~~ toCharArray() //將字符串轉成字符數組 ~~~ ~~~ equals("xxx") //判斷字符串是否完全相等 ~~~ ~~~ equalsIgnoreCase("xxx") //判斷兩個字符串是否完全相等,忽略大小寫 ~~~ ~~~ charAt() //根據索引拿到字符,返回的類型是char ~~~ ~~~ toUpperCase() //將字符串轉成大寫 ~~~ ~~~ toLowerCase() //將字符串轉成小寫 ~~~ ### 判斷大小寫和數字 這里利用了編碼表 ~~~ public static void count(String str) { int upper = 0; int lower = 0; int digit = 0; for(int i = 0; i < str.length(); i++) { char c = str.charAt(i); if(c >= 64 && c <= 90) { upper++; }else if(c >= 97 && c <=122){ lower++; }else if(c >=48 && c <= 57){ digit++; } } System.out.println("大寫:"+upper+",小寫:"+lower+",數字:"+digit); } ~~~
                  <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>

                              哎呀哎呀视频在线观看