<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          每日一例 | String那些事

          共 2768字,需瀏覽 6分鐘

           ·

          2021-05-23 16:13

          前言

          String是一個特別基礎的類,更是我們離不開的一個類,可以說在所有項目中,不可能不用String,所以我們今天就來看下String的一些知識點,看下你到底掌握了沒有。我們廢話少說,直接開始。

          String

          不可變類

          我們在第一次學習String的時候,就被告知String是不可變的類,不可以被繼承。具體的原因就是String類是final修飾的:

          當然,String字符串創(chuàng)建后,不能變化也是因為final關鍵字,看上圖,我們發(fā)現(xiàn)value前面也有final,而且是私有的,沒有對外提供可訪問的方法,所以Stringvalue只能被賦值一次。

          如果你要繼承String,他會有這樣的提示錯誤:

          意思就是無法繼承final的類。

          常用的方法

          作為一個最常用的類之一,String有著特別豐富的方法,以滿足我們各種需求:

          方法參數(shù)應用
          length()
          返回字符串長度
          charAt()int索引獲取string中索引對的的char
          getChars(),getBytes()要復制部分的起點和終點,復制的目標數(shù)組,目標的起始索引復制char或byte到目標數(shù)組中
          toCharArray()
          生成一個char[],包含string的所有字符

          方法比較多,時間關系,我們先寫這個,等晚上了,我把其他也補充上。

          格式化輸出

          這一塊其實我以前也很少有,但是最近了解了下,發(fā)現(xiàn)還是方便的。以前輸出字符串我們是這也操作的:

          int x = 0, y = 2;
          System.out.print("Row 1 :" + x + ","+ y);

          但是在jdk1.5以后,我們可以這樣輸出了:

          System.out.printf("Row 1 :%d, %d", x, y);

          或者這樣:

          System.out.format("Row 1 :%d, %d", x, y);

          上面,這些寫法輸出結(jié)果都是一樣的:

          對于prinfformat想要換行,直接在字符串后面加上換行符即可(\n

          format方法

          這里我們著重說下format方法。她也是jdk1.5引入的,她可以滿足你的各種字符串拼接需求,特別方便:

          String format = String.format("x = %d, y = %d, x + y = %d", x, y, x + y);
          System.out.println(format);

          結(jié)果:

          x = 0, y = 2, x + y = 2

          下面是format支持的參數(shù)類型:

          參數(shù)說明
          d整數(shù)(十進制)
          cUnicode字符
          bBoolean值
          sString
          f浮點數(shù)(十進制)
          e浮點數(shù)(科學計數(shù))
          x整數(shù)(十六進制)
          h散列碼(十六進制)
          %字符"%"

          通過% + 上面這些參數(shù),你可以實現(xiàn)各種字符串拼接的需求。

          當然,我們也可以通過Formatter實現(xiàn)各種字符串的拼接,因為format方法本身就是通過formatter實現(xiàn)的:

          正則表達式

          正則表達式也算是比較重要,而且用的比較多的知識了,由于內(nèi)容太多了,這里我們就簡單說下的的應用。一般我們會用它來實現(xiàn)參數(shù)的校驗,比如日期格式校驗、金額格式校驗、手機號校驗、身份證號校驗。

          String str = "2021-05-20";
          String pattern = "^\\d\\d\\d\\d-\\d\\d-\\d\\d";

          Pattern r = Pattern.compile(pattern);
          Matcher m = r.matcher(str);
          System.out.println(m.matches());

          上面的代碼,只有是2021-05-20這樣的格式才會被匹配,結(jié)果為true,否則是false。下面這些都是不匹配的:

          2021-5-20
          2021-5-200
          2021-05-200
          2021-005-20

          當然,2021-05-002021-00-202020-00-000000-00-00也是可以匹配的,但他們對java而言是合法的日期格式:

          System.out.println(new SimpleDateFormat("yyyy-MM-dd").parse(str));

          第一個對應的日期是

          Fri Apr 30 00:00:00 CST 2021

          也就是2021-04-30

          第二個對應的日期是

          Sun Dec 20 00:00:00 CST 2020

          也就是2020-12-20

          第三個對應的日期是

          Mon Nov 30 00:00:00 CST 2020

          也就是2020-11-30

          第四個對應的日期是

          Mon Nov 30 00:00:00 CST 2020

          也就是0002-11-30

          其他的正則表達式,感興趣的小伙伴自己去了解,在實際開發(fā)過程中,數(shù)據(jù)校驗用起來很方便,比如excel導入的數(shù)據(jù)。

          當然,正則這塊還有一個比較強大的功能,就是數(shù)據(jù)替換,由于時間問題,我們就不在講了,感興趣的小伙伴自己去了解。

          總結(jié)

          對于String常用的方法,小伙伴肯定都比較熟悉,但是format和正則表達式這塊平時用到開發(fā)中的小伙伴肯定比較少,我們希望在今天分享之后,大家能把這兩個比較強大,而且用起來很方便的知識點,真正用到實際開發(fā)中,它們一定會極大提升你的開發(fā)效率的,讓我們一起加油努力吧,奧里給

          項目路徑:

          https://github.com/Syske/example-everyday

          本項目會每日更新,讓我們一起學習,一起進步,遇見更好的自己,加油呀

          - END -


          瀏覽 59
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄色毛片毛片 | 日本爱爱视频网站 | 影音先锋成人资源 | 国产另类视频 | 操逼视频素材大全网站直接看 |