最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java學(xué)習(xí)指南之字符串與正則表達(dá)式

 更新時(shí)間:2023年05月04日 10:05:28   作者:小白菜00  
在日常Java后端開(kāi)發(fā)過(guò)程中,免不了對(duì)數(shù)據(jù)字段的解析,自然就少不了對(duì)字符串的操作,這其中就包含了正則表達(dá)式這一塊的內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于java學(xué)習(xí)指南之字符串與正則表達(dá)式的相關(guān)資料,需要的朋友可以參考下

String

含義:String是一個(gè)封裝char[]數(shù)組的對(duì)象,字符串不可變

String str = “abc”; 等效于:char[] data = {‘a’, ‘b’, ‘c’};

public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence 

注意:

  • String類被final修飾所以String類不能被繼承
  • 所處的包為java.lang,使用時(shí)無(wú)需導(dǎo)包
  • 字符串一旦創(chuàng)建,長(zhǎng)度不可改變

構(gòu)造方法

String(char[] value,int m,int n):截取value數(shù)組從下標(biāo)m開(kāi)始,截取n個(gè)字符形成字符串

String(char[] value):將字符數(shù)組轉(zhuǎn)化為字符串

String(bytes[] bytes):使用平臺(tái)默認(rèn)字符集解碼指定字節(jié)數(shù)組,形成一個(gè)字符串

String(bytes[] bytes,String charsetname):使用指定字符集解碼指定字節(jié)數(shù)組,形成一個(gè)字符串

String(bytes[] bytes,int m,int n,String charsetname):使用指定字符集解碼指定字節(jié)數(shù)組,并從下標(biāo)m處截取字節(jié),截取n個(gè)最終形成一個(gè)字符串

方式二:String str="abc";

注意

方式二的創(chuàng)建方式如果是第一次使用字符串,java會(huì)在字符串堆中常量池創(chuàng)建一個(gè)對(duì)象;其他方式相當(dāng)于直接創(chuàng)建一個(gè)對(duì)象,若常量池中沒(méi)有則也會(huì)在常量池中創(chuàng)建一個(gè)再次使用相同的內(nèi)容時(shí),會(huì)直接訪問(wèn)堆中常量池中存在的對(duì)象。

格式控制字符串

    String a="我";
    String b="蛋糕";
    String name=String.format("%s喜歡%s", a,b);
    System.out.println(name);//字符串可以直接打印

常用方法

int hashCode()
返回此字符串的哈希碼。
boolean equals(Object anObject)
將此字符串與指定的對(duì)象比較,比較的是重寫(xiě)后的串的具體內(nèi)容
String toString()
返回此對(duì)象本身(它已經(jīng)是一個(gè)字符串?。?nbsp;
int length()
返回此字符串的長(zhǎng)度。
String toUpperCase()
所有字符都轉(zhuǎn)換為大寫(xiě)。
String toLowerCase()
所有字符都轉(zhuǎn)換為小寫(xiě)
boolean startsWith(String prefix)
測(cè)試此字符串是否以指定的元素開(kāi)頭。
boolean endsWith(String suffix)
測(cè)試此字符串是否以指定的字符串結(jié)束。
char charAt(int index)
返回指定索引/下標(biāo)處的 char 值/字符
int indexOf(String str)
返回指定字符在此字符串中第一次出現(xiàn)處的索引。
int lastIndexOf(String str)
返回指定字符在此字符串中最后一次出現(xiàn)處的索引。
String concat(String str)
將指定字符串連接/拼接到此字符串的結(jié)尾,注意:不會(huì)改變?cè)?br />String[] split(String regex)
根據(jù)給定元素來(lái)分隔此字符串。
String trim()
返回去除首尾空格的字符串
String replace(CharSequence target, CharSequence replacement)
用新字符串replacement替換掉原有的舊的字符串target
byte[] getBytes()
把字符串存儲(chǔ)到一個(gè)新的 byte 數(shù)組中
String substring(int beginIndex)
返回一個(gè)新子串,從指定下標(biāo)處開(kāi)始,包含指定下標(biāo)
String substring(int beginIndex, int endIndex)
返回一個(gè)新子串,從執(zhí)定下標(biāo)開(kāi)始,到結(jié)束下標(biāo)為止,但不包含結(jié)束下標(biāo)
static String valueOf(int i)
把int轉(zhuǎn)成String
char[] toCharArray()
將字符串轉(zhuǎn)成字符數(shù)組

StringBuilder與StringBuffer

特點(diǎn)

  • 封裝了char[]數(shù)組
  • 是可變的字符序列
  • 提供了一組通用的可以對(duì)字符內(nèi)容修改的方法
  • 常用append()來(lái)代替字符串做字符串連接”+”
  • 內(nèi)部字符數(shù)組默認(rèn)初始容量是16:super(str.length() + 16);
  • 如果大于16會(huì)嘗試將擴(kuò)容,新數(shù)組大小原來(lái)的變成2倍+2,容量如果還不夠,直接擴(kuò)充到需要的容量大小。int newCapacity = value.length * 2 + 2;
  • StringBuffer 1.0出道線程安全,StringBuilder1.5出道線程不安全
  • StringBuffer方法里面有同步關(guān)鍵字,StringBuilder里沒(méi)有
  • 在執(zhí)行效率上,StringBuilder > StringBuffer > String

理解可變與不可變

  • 不可變:在地址不變的情況下,想讓字符串?dāng)U容是不可能的
  • 可變:在stringBuilder/stringbuffer這個(gè)對(duì)象地址不變的情況下,想讓字符串?dāng)U容是可能的,直接追加即可

字符串拼接方法

語(yǔ)法:字符串.append(字符串);

返回值:原字符串

        String s = "hello world";
        StringBuffer s1 = new StringBuffer();
        StringBuffer append = s1.append(s);
        System.out.println(s1);//hello world
        System.out.println(s1==append);//true

字符串刪除方法

語(yǔ)法:字符串.delete(索引1,索引2)

作用:刪除[索引1,索引2)之間所有的字符

返回值:原字符串

        StringBuilder s1 = new StringBuilder("hello world");
        StringBuilder delete = s1.delete(3, 6);
        System.out.println(delete);
        System.out.println(s1==delete);//true

字符串內(nèi)插入字符

語(yǔ)法:字符串.insert(索引,字符串)

作用:在指定索引的前面追加字符

返回值:原字符串

        StringBuffer s1 = new StringBuffer("hello");
        StringBuilder s2=new StringBuilder("world");
        StringBuffer s = s1.insert(1, "ab");
        s2.insert(5, "cd");//在末尾處追加字符串,如果索引為6則報(bào)錯(cuò)
        System.out.println(s1);//habello
        System.out.println(s1==s);//true
        System.out.println(s2);//worldcd

字符串替換方法

語(yǔ)法:字符串.replace(索引1,索引2,str字符串)

作用:將字符串內(nèi)[索引1,索引2)內(nèi)所有字符由str字符串替換

返回值:原字符串

        StringBuilder s1 = new StringBuilder("hello world");
        StringBuilder s2 = s1.replace(3, 6, "no");
        System.out.println(s2);
        System.out.println(s1==s2);//true

字符串反轉(zhuǎn)方法

語(yǔ)法:字符串.reverse()

返回值:原字符串

        StringBuffer s1 = new StringBuffer("abc");
        StringBuffer reverse = s1.reverse();
        System.out.println(s1);//cba
        System.out.println(s1==reverse);//true

查字符串對(duì)應(yīng)索引處的字符 

語(yǔ)法:字符串.charAt(索引)

返回值:對(duì)應(yīng)索引處的字符

        StringBuffer s1 = new StringBuffer("hello world");
        char c = s1.charAt(6);
        System.out.println(c);

截取字符串

語(yǔ)法:字符串.substring(索引1,索引2)

返回值:字符串[索引1,索引2)內(nèi)字符組成的字符串

        StringBuffer s1 = new StringBuffer("hello world");
        String substring = s1.substring(2, 5);
        System.out.println(substring);

正則表達(dá)式

含義:正確字符串的格式,常用來(lái)判斷用戶輸入的內(nèi)容是否符合格式的要求,注意是嚴(yán)格區(qū)分大小寫(xiě)的。

注意:java字符串正則嚴(yán)格按照順序匹配 

正則表達(dá)式符號(hào)表

正則表達(dá)式常用方法

Matches()

語(yǔ)法:字符串.Matches(正則)

作用:判斷當(dāng)前字符串是否匹配正則表達(dá)式,若符合則返回true,否則返回false

返回值:boolean

        //身份證號(hào)的規(guī)律:一共是18位,前17位是數(shù)子,第18位有可能是數(shù)字,也有可能是X
        String regex = "\\d{17}[0-9X]";
        System.out.println("請(qǐng)輸入您的身份證號(hào)");
        String s = new Scanner(System.in).nextLine();
        boolean matches = s.matches(regex);
        System.out.println(matches);

replaceAll()

語(yǔ)法:字符串.replaceAll(正則,子串)

作用:將字符串內(nèi)符合正則的內(nèi)容用字串代替

返回值:替換好的字符串

        String regex = "\\d[0-9X]";
        String s = "he1Xo";
        String s1 = s.replaceAll(regex, "ll");
        System.out.println(s1);

split()

語(yǔ)法:字符串.split(正則)

作用:以字符串內(nèi)符合正則表達(dá)式的內(nèi)容來(lái)拆分字符串

返回值:拆分好的字符串?dāng)?shù)組

        String regex = "\\d[0-9X]";
        String s = "abc23def0Xghi";
        String[] split = s.split(regex);
        System.out.println(Arrays.toString(split));//[abc, def, ghi]

總結(jié)

到此這篇關(guān)于java學(xué)習(xí)指南之字符串與正則表達(dá)式的文章就介紹到這了,更多相關(guān)java字符串與正則表達(dá)式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot+Mybatis項(xiàng)目使用Redis做Mybatis的二級(jí)緩存的方法

    SpringBoot+Mybatis項(xiàng)目使用Redis做Mybatis的二級(jí)緩存的方法

    本篇文章主要介紹了SpringBoot+Mybatis項(xiàng)目使用Redis做Mybatis的二級(jí)緩存的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • SpringMVC自定義類型轉(zhuǎn)換器實(shí)現(xiàn)解析

    SpringMVC自定義類型轉(zhuǎn)換器實(shí)現(xiàn)解析

    這篇文章主要介紹了SpringMVC自定義類型轉(zhuǎn)換器實(shí)現(xiàn)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 解決springboot啟動(dòng)成功,但訪問(wèn)404的問(wèn)題

    解決springboot啟動(dòng)成功,但訪問(wèn)404的問(wèn)題

    這篇文章主要介紹了解決springboot啟動(dòng)成功,但訪問(wèn)404的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java?中的5個(gè)代碼性能提升技巧

    Java?中的5個(gè)代碼性能提升技巧

    這篇文章主要給大家分享了Java的5個(gè)代碼性能提升的技巧,雖然大多數(shù)情況下極致優(yōu)化代碼是沒(méi)有必要的,但是作為一名技術(shù)開(kāi)發(fā)者,我們還是想追求代碼的更小、更快,更強(qiáng)。如果哪天發(fā)現(xiàn)程序的運(yùn)行速度不盡人意,就需要這樣的文章了,需要的朋友可以參考一下
    2021-12-12
  • SpringBoot實(shí)現(xiàn)國(guó)密通信的流程步驟

    SpringBoot實(shí)現(xiàn)國(guó)密通信的流程步驟

    這篇文章主要介紹了SpringBoot實(shí)現(xiàn)國(guó)密通信的流程步驟,我們需要完成以下步驟:生成支持國(guó)密的證書(shū),配置兩個(gè) Spring Boot 項(xiàng)目,使用國(guó)密證書(shū)實(shí)現(xiàn) HTTPS和驗(yàn)證通信是否成功,通過(guò)代碼示例講解的非常詳細(xì),需要的朋友可以參考下
    2024-11-11
  • Hibernate原理及應(yīng)用

    Hibernate原理及應(yīng)用

    本文主要介紹了Hibernate原理及應(yīng)用。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • Eureka源碼閱讀解析Server服務(wù)端啟動(dòng)流程實(shí)例

    Eureka源碼閱讀解析Server服務(wù)端啟動(dòng)流程實(shí)例

    這篇文章主要為大家介紹了Eureka源碼閱讀解析Server服務(wù)端啟動(dòng)流程實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • 詳解SpringBoot啟動(dòng)類的掃描注解的用法及沖突原則

    詳解SpringBoot啟動(dòng)類的掃描注解的用法及沖突原則

    這篇文章主要介紹了詳解SpringBoot啟動(dòng)類的掃描注解的用法及沖突原則,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • java?-jar命令及SpringBoot通過(guò)java?-jav啟動(dòng)項(xiàng)目的過(guò)程

    java?-jar命令及SpringBoot通過(guò)java?-jav啟動(dòng)項(xiàng)目的過(guò)程

    本篇文章將為大家講述關(guān)于 SpringBoot 項(xiàng)目工程完成后,是如何通過(guò) java-jar 命令來(lái)啟動(dòng)的,以及介紹 java-jar 命令的詳細(xì)內(nèi)容,對(duì)SpringBoot java?-jav啟動(dòng)過(guò)程感興趣的朋友跟隨小編一起看看吧
    2023-05-05
  • 使用springboot訪問(wèn)圖片本地路徑并映射成url

    使用springboot訪問(wèn)圖片本地路徑并映射成url

    這篇文章主要介紹了使用springboot訪問(wèn)圖片本地路徑并映射成url的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評(píng)論

准格尔旗| 贞丰县| 东安县| 息烽县| 哈尔滨市| 新邵县| 东台市| 永靖县| 象州县| 长治县| 蓝山县| 略阳县| 瓮安县| 安新县| 遵化市| 宣武区| 乌拉特前旗| 革吉县| 五台县| 昌邑市| 苏尼特右旗| 台东县| 富裕县| 兰溪市| 城步| 旬邑县| 兴山县| 湘阴县| 赞皇县| 泽普县| 峡江县| 武夷山市| 武清区| 香港 | 平陆县| 富阳市| 永济市| 宿松县| 柞水县| 垣曲县| 津南区|