• 好程序員-千鋒教育旗下高端IT職業教育品牌

    400-811-9990
    我的賬戶
    好程序員

    專注高端IT職業培訓

    親愛的猿猿,歡迎!

    已有賬號,請

    如尚未注冊?

    [JavaEE] 好程序員Java培訓分享Java基礎之string

    [復制鏈接]
    85 0
    葉子老師 發表于 2019-9-28 15:15:13 | 只看該作者 |閱讀模式 打印 上一主題 下一主題
    好程序員Java培訓分享Java基礎string先來講一下字符串
    字串符分類
        不可變字符串:----String.字符串本身不能發生改變,與指向字符串的引用無關.
            String s1 = "1000phone";
        可變字符串:----StringBuilder/StringBuffer.字符串本身可以發生變化,與指向可變字符串的引用無關
            StringBuffer sBuffer = new StringBuffer("1000phone");
    不可變字符串本身是一個常量,保存在常量區,是存儲在了堆區中一塊兒特殊的區域里。
    **字符串常量的特點:**同一個字符串常量在常量區只允許存儲一個。
        String s = "1000phone";//不可變字符串
         * 當執行s的時候,會到常量區找叫1000phone的字符串,如果有直接讓s保存他的地址,如果沒有,會在常量區開辟一塊兒空間存1000phone.
        String s3 = new String("1000phone");
         * 執行s3,由于進行了new,一定會現在堆中開辟一塊兒空間,1000phone是作為參數傳給了對象.保存在了對象的一個String
    **使用equals進行String的比較**
    **2.轉換:**
    將字符數組轉換成字符串
        char[] arr = {'p','h','o','n','e'};
         String string1 = new String(arr);  //string1 = phone
    將字符串轉換成字符數組
        char[] arr1 = string.toCharArray();
    System.out.println(arr1);
    將字節數組轉成字符串
            //String(byte[] bytes)
            //String(byte[] bytes, int offset, int length)
            //String(byte[] bytes, String charsetName)//使用指定的編碼將字節數組轉換成字符成
            byte[] bytes = {97,98,99,100};
            String string3 = new String(bytes);
            System.out.println(string3); //abcd
    將字符串轉成字節數組
            //byte[] getBytes()
            byte[] bytes1 = string3.getBytes();
    將基本數據類型轉換成字符串
            //String.valueOf()
            String string4 = String.valueOf(true);
            System.out.println(string4);//true
    子串:
        //包含起始位置,不包含結束位置,到結束位置的前一位
        String substring(int beginIndex, int endIndex);
    大小寫轉換
            String toLowerCase();  // 轉成小寫
            String toUpperCase();  // 轉成大寫
    按字典順序比較兩個字符串
        * 字典順序:按照ASCII表比較當前的兩個字符,ASCII碼大的認為是大的字符
        * 規則:從左邊第一個字符開始比較
        * 如果當前的字符不相同,直接認為ASCII大的字符串是大字符串,后面的字符停止比較
        * 當前字符比較的具體規則:使用前面的字符-后面的字符,返回差值.如果是負數,說明前面的字符串小于后面的.反之前面的大.
        * 如果當前的字符相同,再去比較第二個字符,依次往后推,如果比到最后都相同,則認為兩個字符串相等,差值返回0.
            "1000PHone".compareTo("1000PHone");//0
            "1000AHone".compareTo("1000BHone");//-1
            "100000".compareTo("100");//-3
    **可變字符串:**
    * 字符串緩沖區.StringBuffer/StringBuilder
    * 區別:
    * StringBuffer:出現在jdk1.0,是線程安全的,考慮了線程安全問題
    * StringBuilder:出現在jdk1.5,是線程不安全的,沒有考慮線程安全問題
    *
    * 注意:在不考慮線程安全問題時,盡量使用StringBuilder,因為速度快,效率高
    使用:
        StringBuffer sBuffer = new StringBuffer();
        //1.存儲:
        //StringBuffer append(boolean b)   從最后插入
        sBuffer.append("abcd"); //abcd
        //StringBuffer insert(int offset, boolean b)   從指定位置插入
        sBuffer.insert(4, 123);
        System.out.println(sBuffer);//abcd123
       
        //2.刪除:
        //StringBuffer delete(int start, int end)   刪除一部分字符串
        //StringBuffer deleteCharAt(int index)  刪除一個字符
        System.out.println(sBuffer.deleteCharAt(4));//abcd23
        System.out.println(sBuffer.delete(2,4)); //ab23
        //3.修改:
        //StringBuffer replace(int start, int end, String str)  替換指定的子字符串
        //void setCharAt(int index, char ch) 修改一個字符
        sBuffer.replace(1, 3, "ab") ; //aab3
        //4.獲取:
        //char charAt(int index)
        System.out.println(sBuffer.charAt(0)); //a
        //返回指定子字符串的下標  從左到右
        //int indexOf(String str)
        System.out.println(sBuffer.indexOf("ab"));//1
        //返回指定子字符串在此字符串中第一次出現處的索引,從指定的索引開始。
      System.out.println(sBuffer.indexOf("ab",0)); //1
        System.out.println(sBuffer.indexOf("ab",2)); //-1
        //int lastIndexOf(String str)
        //返回指定子字符串(從右邊開始計數)在此字符串第一次出現時的索引
        System.out.println(sBuffer.indexOf("ba")); //-1
        System.out.println(sBuffer.indexOf("ab")); //1
        //int lastIndexOf(String str, int fromIndex)
        /返回指定字符在此字符串中最后一次出現處的索引,從指定的索引處開始進行反向搜索。
        System.out.println(sBuffer.indexOf("ab",1)); //1
        //5.反轉:
        //StringBuffer reverse()
        System.out.println(sBuffer.reverse()); //3baa
    ## 2.網址: ##
    * 網址的功能:實現客戶端與服務器端的通信
    * 協議:是制定一個統一的規范
    * http協議:超文本傳輸協議,實現的是網絡間的通信的一個通信規則
    * https協議:安全的http協議---可以省略,默認是http協議
    * 域名/IP:標記網絡上的唯一一臺主機     可以簡化寫:baidu
    * 端口號:標記同一臺主機上的某一個服務器   [0,65536]---可以省,默認80
    * 資源路徑:   可以省
    * 查詢條件:   可以省
          * 例子:
          * 1.判斷是不是網址---http/https
          * 2.取出端口
          * 3.取出查詢條件
          *
    * 驗證qq號與密碼是否正確?
         * a:本地驗證---驗證的是qq與密碼的格式
             * --qq:
                 * 1.首字母不能為0  
                 * 2.全部是數字  
                 * 3.[5,11]
             * 要求:使用兩種方式驗證:
                 * 1.普通的字符串驗證     
                 * 2.利用自定義的異常
         * b:網絡驗證---驗證的是qq與密碼與服務器存儲的是否相同.
             * --寫一個虛擬的qq,密碼即可
    ## 3.Date:日期類 ##
    * Data:數據類,裝的是二進制的數據
    *
    * java.util   對應的是java的日期類型,包括年月日  時分秒
    * java.sql    對應的是數據庫的日期類型 ,只包括 年月日
    *
         * long型的時間,這個時間從1970年開始算
         * long time = date.getTime();
    **日期轉換**
    * Format:格式轉換器
    * DateFormat:日期格式轉換器
    * //使用自定義的日期格式轉換器實現自由轉換----SimpleDateFormat
        * SimpleDateFormat simpleDateFormat = new  SimpleDateFormat("yyyy/MM/dd  HH:mm:ss");//HH代表24小時制
    好程序員Java培訓官網:http://www.887tp.com/javaEE_class.shtml

    精彩內容,一鍵分享給更多人!
    收藏
    收藏0
    轉播
    轉播
    分享
    淘帖0
    支持
    支持0
    反對
    反對0
    回復

    使用道具 舉報

    您需要登錄后才可以回帖

    本版積分規則

    關注我們
    好程序員
    千鋒好程序員

    北京校區(總部):北京市海淀區寶盛北里西區28號中關村智誠科創大廈

    深圳西部硅谷校區:深圳市寶安區寶安大道5010號深圳西部硅谷B座A區605-619

    杭州龍馳智慧谷校區:浙江省杭州市下沙經濟技術開發區元成路199號龍馳智慧谷B座7層

    鄭州校區:鄭州市二七區航海中路60號海為科技園C區10層、12層

    Copyright 2007-2019 北京千鋒互聯科技有限公司 .All Right

    京ICP備12003911號-5 京公安網11010802011455號

    請您保持通訊暢通1對1咨詢馬上開啟

    色日日 - 色日日网集百万部多多潮流电影,酷酷小说,精彩图片,火辣