在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    Java使用類-String

    Java使用類-String

    1、String

    1.1 String 實(shí)例化

    String str1 = “xxx”;

    String string1 = “hello KH96”;System.out.println(string1); //hello KH96

    String str1 = new String(“xxx”);

    String string2 = “hello KH96”;System.out.println(string2); //hello KH96

    String底層實(shí)現(xiàn) private final char value[];

    String底層是由 私有final 的數(shù)組實(shí)現(xiàn)的,對(duì)外沒(méi)有提供修改的方法,字符串多次賦值,不是修改字符串的內(nèi)容,而是 改變字符串的引用地址 ;

    源碼

    1.2 String常用方法

    方法

    說(shuō)明

    length()

    字符串的長(zhǎng)度

    equals()

    比較的是字符串的內(nèi)容

    equalsIgnoreCase(String str)

    忽略大小比較

    toUpperCase()

    轉(zhuǎn)大寫

    toLowerCase()

    轉(zhuǎn)小寫

    concat(String str)

    返回拼接后的字符串

    length()

    字符串的長(zhǎng)度:length()方法,返回的是字符串的長(zhǎng)度,即字符串的長(zhǎng)度(不是字節(jié)數(shù)),區(qū)別去數(shù)組的length

    String string1 = “hello KH96”;System.out.println(string1+”的長(zhǎng)度:”+string1.length()); //hello KH96的長(zhǎng)度:10

    equals()

    重寫了Object類的equals方法,比較的是字符串的內(nèi)容,不是對(duì)象

    String string2 = “KH96”;String string3 = “KH97”;System.out.println(string2.equals(string3)); //false

    equalsIgnoreCase(String str)

    忽略大小比較

    String string7 = “kh96”;String string8 = “KH96”;System.out.println(“不忽略大小寫比較:”+string7.equals(string8)); //falseSystem.out.println(“忽略大小寫比:”+string7.equalsIgnoreCase(string8)); //true

    toUpperCase() 轉(zhuǎn)大寫 toLowerCase() 轉(zhuǎn)小寫

    String string9 = “abCD”;System.out.println(string9.toUpperCase()); //ABCDSystem.out.println(string9.toLowerCase());//abcd

    concat(String str) 返回拼接后的字符串

    “+”號(hào)也可以進(jìn)行字符串拼接

    concat(String str)

    拼接字符串都創(chuàng)建了新的對(duì)象,在循環(huán)中盡量不要拼接字符串,會(huì)造成棧溢出;

    String strig10 = “abc”;System.out.println(strig10.concat(“bcd”).concat(“def”));//abcbcddef

    1.3 String 字符查找/提取相關(guān)方法

    方法

    說(shuō)明

    indexOf(String str)

    返回str首次出現(xiàn)的下標(biāo)

    lastIndexOf(String str)

    返回str最后一次出現(xiàn)的下標(biāo)

    substring(int index1)

    截取下標(biāo)index1,及以后的所有字符

    substring(int index1,int index2)

    截取下標(biāo)index1到index2之間的字符串,包括index1, 不包括 index2

    trim()

    去除字符串的 首尾 空格

    startsWith(String str)

    是否以str開頭

    endsWith(String str)

    是否以str結(jié)尾

    contains(String str)

    是否包含str

    split(String str)

    根據(jù)指定分割字符,將字符串拆分成字符串?dāng)?shù)組返回

    toCharArray()

    將字符串轉(zhuǎn)為字符數(shù)組

    replace(String str1,String str2)

    用 str2 替換 str1

    getBytes()

    字符串轉(zhuǎn)換為字節(jié)數(shù)組

    getBytes(“UTF-8”)

    字符串轉(zhuǎn)換為字節(jié)數(shù)組,可指定編碼

    new String(byte[] bytes)

    將字節(jié)數(shù)組轉(zhuǎn)換為字符串

    indexOf(String str)

    返回str首次出現(xiàn)的下標(biāo),沒(méi)有查到就返回-1

    String string11 = “I am a good student in kh96”;System.out.println(“good首次出現(xiàn)的位置:”+string11.indexOf(“good”)); //7

    還可以通過(guò)ascii碼值查詢

    String string11 = “I am a good student in kh96”;char char1 = 97;System.out.println(char1); //aSystem.out.println(“參數(shù)支持int assic碼值:”+string11.indexOf(97)); //2

    lastIndexOf(String str)

    返回str最后一次出現(xiàn)的下標(biāo),沒(méi)有就返回-1

    String string11 = “I am a good student in kh96”;System.out.println(string11);System.out.println(“t最后一次出現(xiàn)的下標(biāo):”+string11.lastIndexOf(“t”)); //18

    substring(int index1)

    截取下標(biāo)index1,及以后的所有字符

    index的范圍[0,string.length()]

    String string12 = “abcdefghijklmn”;System.out.println(string12.substring(5)); //fghijklmn

    substring(int index1,int index2)

    截取下標(biāo)index1到index2之間的字符串,包括index1, 不包括 index2

    index的范圍[0,string.length()]

    String string12 = “abcdefghijklmn”;System.out.println(string12.substring(5,8)); //fgh

    小應(yīng)用

    String string14 = “KH90,KH91,KH92,KH93,KH94,KH95,”;System.out.println(string14.substring(0,string14.lastIndexOf(“,”)));//KH90,KH91,KH92,KH93,KH94,KH95

    trim()

    去除字符串的 首尾 空格

    String string13 = ” KH 96 “;System.out.println(“原始長(zhǎng)度”+string13.length()); //10System.out.println(“取出空格后長(zhǎng)度”+string13.trim().length()); //6 “KH 96”

    startsWith(String str) endsWith(String str)

    startsWith(String str) 是否以str開頭

    endsWith(String str) 是否以str結(jié)尾

    String string15 = “KH96.mp3”;System.out.println(“是否是KH開頭?”+ string15.startsWith(“KH”)); //trueSystem.out.println(“是否是.mp3結(jié)尾?”+ string15.endsWith(“.mp3”)); //true

    contains(String str)

    判斷字符串是否包含str

    String string16 = “aaa bbb cc ddd”;System.out.println(“是否包含bbb:”+ string16.contains(“bbb”)); //trueSystem.out.println(“是否包含eee:”+ string16.contains(“eee”)); //false

    split(String str)

    根據(jù)指定分割字符,將字符串拆分成字符串?dāng)?shù)組返回

    String string17_1 = “13501020304;15801020304;18901020304”;String[] phoneNumbers1 = string17_1.split(“;”); //一種字符分割System.out.println(“手機(jī)號(hào)數(shù)組內(nèi)容:”+ Arrays.toString(phoneNumbers2));String string17_2 = “13501020304;15801020304!18901020304”;String[] phoneNumbers2 = string17_2.split(“;|!”); //多種字符分割 用 | 隔開System.out.println(“手機(jī)號(hào)數(shù)組內(nèi)容:”+ Arrays.toString(phoneNumbers2));//[13501020304, 15801020304, 18901020304]

    toCharArray()

    將字符串轉(zhuǎn)為字符數(shù)組

    char[] chars1 = string18.toCharArray();System.out.println(Arrays.toString(chars1)); //[K, H, 9, 8, 正, 在, 學(xué), 習(xí), 實(shí), 用, 類]

    replace(String str1,String str2)

    用 str2 替換 str1

    //獲取一個(gè)16位的隨機(jī)字符串 String string19 = UUID.randomUUID().toString();System.out.println(string19); //65c0844a-c437-4a65-89ca-84d4166325ff//轉(zhuǎn)換字符串,將-轉(zhuǎn)換為*System.out.println(string19.replace(“-“,”*”));//65c0844a*c437*4a65*89ca*84d4166325ff//去除字符串,將所有的-去除System.out.println(string19.replace(“-“,””));//65c0844ac4374a6589ca84d4166325ff//去16位隨機(jī)數(shù)System.out.println(string19.replace(“-“,””).substring(0,16));//65c0844ac4374a65

    getBytes() getBytes(“UTF-8”)

    字符串轉(zhuǎn)換為字節(jié)數(shù)組

    String string20 = “abcd”;//getBytes() 沒(méi)有指定編碼byte[] bytes = string20.getBytes(); try { //getBytes(“UTF-8”) 指定編碼 byte[] bytes2 = string20.getBytes(“UTF-8”); System.out.println(Arrays.toString(bytes2)); //[97, 98, 99, 100]} catch (UnsupportedEncodingException e) { e.printStackTrace();}System.out.println(Arrays.toString(bytes)); //Arrays.toString(bytes)

    new String(byte[] bytes)

    將字節(jié)數(shù)組轉(zhuǎn)換為字符串

    byte[] bytes3 ={100,101,102}; //ascii碼值System.out.println(new String(bytes3)); //def//配合上面getBytes進(jìn)行轉(zhuǎn)碼try { System.out.println(new String(bytes3,”utf-8″)); //可以指定編碼 def} catch (UnsupportedEncodingException e) { e.printStackTrace();}char[] chars3 = {‘K’,’H’,’9′,’6′};System.out.println(new String(chars3));//KH96

    2、StringBuffer

    可變字符串類:StringBuffer

    不同于String類:可以實(shí)現(xiàn)動(dòng)態(tài)拼接字符串,而不會(huì)創(chuàng)建新的對(duì)象;

    即:是一個(gè)可變字符串的對(duì)象,改變的是字符串對(duì)象中的內(nèi)容;

    不可以直接賦值,必須通過(guò)new創(chuàng)建對(duì)象;

    2.1 StringBuffer實(shí)例化

    new StringBuffer()

    默認(rèn)初始容量 16

    StringBuffer sbf1 = new StringBuffer();System.out.println(“默認(rèn)初始容量:”+sbf1.capacity());//16

    底層實(shí)現(xiàn)

    //StringBuffer()public StringBuffer() { super(16); //初始容量16 }//AbstractStringBuilder(int capacity)AbstractStringBuilder(int capacity) { value = new char[capacity];}

    new StringBuffer(int capacity)

    指定初始容量

    StringBuffer sbf2 = new StringBuffer(32);System.out.println(“只定始容量:”+sbf2.capacity()); //32

    底層實(shí)現(xiàn)

    public StringBuffer(int capacity) {super(capacity); //指定初始容量}

    StringBuffer(String str)

    指定初始字符串,容量為字符串長(zhǎng)度+16

    StringBuffer sbf3 = new StringBuffer(“Kh96”);System.out.println(“指定初始字符串初始容量:”+sbf3.capacity()); //20

    底層實(shí)現(xiàn)

    public StringBuffer(String str) { super(str.length() + 16); //容量為字符串長(zhǎng)度+16 append(str);}

    2.2 StringBuffer常用方法

    append(String str)

    拼接字符串

    StringBuffer sbf4 = new StringBuffer(“userId=”);sbf4.append(“U0001”) .append(“,userName=”) .append(“張三,age=”) .append(“18”); //userId=U0001,userName=張三,age=18

    擴(kuò)容機(jī)制

    底層擴(kuò)容,當(dāng)拼接一個(gè)新的字符串,字符串?dāng)?shù)組長(zhǎng)度不夠,會(huì)進(jìn)行動(dòng)態(tài)擴(kuò)容,

    每次擴(kuò)容都是前一個(gè)數(shù)組長(zhǎng)度的2倍+2

    最大擴(kuò)容長(zhǎng)度不能超過(guò)Integer的最大值 – 8;

    void expandCapacity(int minimumCapacity) { int newCapacity = value.length * 2 + 2; //每次擴(kuò)容都是前一個(gè)數(shù)組長(zhǎng)度的2倍+2 if (newCapacity – minimumCapacity < 0) newCapacity = minimumCapacity; if (newCapacity < 0) { if (minimumCapacity < 0) // overflow throw new OutOfMemoryError(); newCapacity = Integer.MAX_VALUE; } value = Arrays.copyOf(value, newCapacity);}

    toString()

    獲取動(dòng)態(tài)字符串內(nèi)容

    StringBuffer sbf4 = new StringBuffer(“userId=”);sbf4.append(“U0001”) .append(“,userName=”) .append(“張三,age=”) .append(“18”);String userInfo = sbf4.toString(); System.out.println(userInfo); //userId=U0001,userName=張三,age=18

    3、StringBuilder

    用法和StringBuffer沒(méi)有區(qū)別,唯一的區(qū)別就是StringBuffer是 線程安全的 ,StringBuilder是 非線程安全的 ;

    鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
    用戶投稿
    上一篇 2022年6月20日 13:07
    下一篇 2022年6月20日 13:07

    相關(guān)推薦

    • 分享4條發(fā)微商朋友圈的方法(微商朋友圈應(yīng)該怎么發(fā))

      對(duì)于微商朋友來(lái)說(shuō),朋友圈的重要性不言而喻了。 那么微商的朋友圈到底該怎么發(fā)呢? 為什么同樣是經(jīng)營(yíng)一個(gè)朋友圈,有的微商看起來(lái)逼格滿滿,實(shí)際效果也不錯(cuò);而有的卻動(dòng)都不動(dòng)就被屏蔽甚至拉黑…

      2022年11月27日
    • 短視頻策劃內(nèi)容的3個(gè)要點(diǎn)(短視頻策劃內(nèi)容怎么做)

      短視頻在制作時(shí),內(nèi)容框架非常重要。如果直奔主題,然后結(jié)束,聚卓告訴你,這樣的短視頻已經(jīng)過(guò)時(shí)了?,F(xiàn)在的短視頻需要框架的,但不是任何框架,它需要一種易于理解和消化的框架。而且,現(xiàn)在大多…

      2022年11月27日
    • 存儲(chǔ)過(guò)程語(yǔ)法(sql server存儲(chǔ)過(guò)程語(yǔ)法)

      今天小編給各位分享存儲(chǔ)過(guò)程語(yǔ)法的知識(shí),其中也會(huì)對(duì)sql server存儲(chǔ)過(guò)程語(yǔ)法進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開始吧! oracle存儲(chǔ)過(guò)程基本語(yǔ)法…

      2022年11月26日
    • 《寶可夢(mèng)朱紫》夢(mèng)特性怎么獲得?隱藏特性獲取方法推薦

      寶可夢(mèng)朱紫里有很多寶可夢(mèng)都是擁有夢(mèng)特性會(huì)變強(qiáng)的寶可夢(mèng),很多玩家不知道夢(mèng)特性怎么獲得,下面就給大家?guī)?lái)寶可夢(mèng)朱紫隱藏特性獲取方法推薦,感興趣的小伙伴一起來(lái)看看吧,希望能幫助到大家。 …

      2022年11月25日
    • 《寶可夢(mèng)朱紫》奇魯莉安怎么進(jìn)化?奇魯莉安進(jìn)化方法分享

      寶可夢(mèng)朱紫中的奇魯莉安要怎么進(jìn)化呢?很多玩家都不知道,下面就給大家?guī)?lái)寶可夢(mèng)朱紫奇魯莉安進(jìn)化方法分享,感興趣的小伙伴一起來(lái)看看吧,希望能幫助到大家。 奇魯莉安進(jìn)化方法分享 奇魯莉安…

      2022年11月25日
    • 小紅書平臺(tái)的一些機(jī)制及玩法詳解(小紅書玩法有哪些)

      關(guān)于小紅書 一:小紅書平臺(tái)的一些機(jī)制 1. 筆記內(nèi)容的CES評(píng)分機(jī)制 2. 筆記流量入口與長(zhǎng)尾效應(yīng) 二:小紅書優(yōu)質(zhì)筆記的特點(diǎn)(分維度、類型分析) 1.筆記的本身架構(gòu)組成 維度 2.…

      2022年11月25日
    • 博客營(yíng)銷的3大優(yōu)勢(shì)解析(博客營(yíng)銷怎么做)

      不知不覺(jué)已經(jīng)寫了24篇文章,加上這篇是第25篇了,都是自己這幾年來(lái)用過(guò)的營(yíng)銷方法,如果遇到有些不懂的,我會(huì)咨詢我的朋友和同事幫忙,盡量讓每一篇有價(jià)值,哪怕是對(duì)大家有一點(diǎn)點(diǎn)幫助也行,…

      2022年11月25日
    • 什么是內(nèi)容營(yíng)銷策略如何策劃一套成功的內(nèi)容營(yíng)銷策略

      很多時(shí)候,營(yíng)銷人員會(huì)在創(chuàng)作營(yíng)銷內(nèi)容時(shí)感到沮喪,這也是很多企業(yè)至今沒(méi)用好數(shù)字化營(yíng)銷工具的重要原因之一。 舉個(gè)例子,您可能會(huì)花上數(shù)小時(shí)期待制作一些令人驚嘆的東西,實(shí)際卻是得到很少的受眾…

      2022年11月25日
    • 直播帶貨詳細(xì)腳本(直播文案策劃怎么寫)

      短視頻運(yùn)營(yíng)策劃方案怎么寫?涉及哪幾個(gè)方面? 我在網(wǎng)上看到好多千篇一律的文章,關(guān)于【短視頻運(yùn)營(yíng)策劃方案】這一塊,基本都是在講賬號(hào)的內(nèi)容本身。 你內(nèi)容做得再好,卻不掌握算法的規(guī)律,能有…

      2022年11月25日
    • 閑魚上怎么賣東西快?閑魚賺錢必知技巧(怎么在閑魚里面賣東西)

      自從閑魚這個(gè)平臺(tái)出現(xiàn)以后,隨著這些年的發(fā)展,閑魚也成為了很多人開店賺錢的重要途徑。一些新人也想在閑魚上試試水,看看能不能賺到錢。如今閑魚上既可以賣二手閑置物品,也可以賣一些新品,那…

      2022年11月25日

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息