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

java學習指南之字符串與正則表達式

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

String

含義:String是一個封裝char[]數組的對象,字符串不可變

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

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

注意:

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

構造方法

String(char[] value,int m,int n):截取value數組從下標m開始,截取n個字符形成字符串

String(char[] value):將字符數組轉化為字符串

String(bytes[] bytes):使用平臺默認字符集解碼指定字節(jié)數組,形成一個字符串

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

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

方式二:String str="abc";

注意

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

格式控制字符串

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

常用方法

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

StringBuilder與StringBuffer

特點

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

理解可變與不可變

  • 不可變:在地址不變的情況下,想讓字符串擴容是不可能的
  • 可變:在stringBuilder/stringbuffer這個對象地址不變的情況下,想讓字符串擴容是可能的,直接追加即可

字符串拼接方法

語法:字符串.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

字符串刪除方法

語法:字符串.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

字符串內插入字符

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

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

返回值:原字符串

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

字符串替換方法

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

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

返回值:原字符串

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

字符串反轉方法

語法:字符串.reverse()

返回值:原字符串

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

查字符串對應索引處的字符 

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

返回值:對應索引處的字符

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

截取字符串

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

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

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

正則表達式

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

注意:java字符串正則嚴格按照順序匹配 

正則表達式符號表

正則表達式常用方法

Matches()

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

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

返回值:boolean

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

replaceAll()

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

作用:將字符串內符合正則的內容用字串代替

返回值:替換好的字符串

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

split()

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

作用:以字符串內符合正則表達式的內容來拆分字符串

返回值:拆分好的字符串數組

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

總結

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

相關文章

  • SpringBoot+Mybatis項目使用Redis做Mybatis的二級緩存的方法

    SpringBoot+Mybatis項目使用Redis做Mybatis的二級緩存的方法

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

    SpringMVC自定義類型轉換器實現解析

    這篇文章主要介紹了SpringMVC自定義類型轉換器實現解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • 解決springboot啟動成功,但訪問404的問題

    解決springboot啟動成功,但訪問404的問題

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

    Java?中的5個代碼性能提升技巧

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

    SpringBoot實現國密通信的流程步驟

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

    Hibernate原理及應用

    本文主要介紹了Hibernate原理及應用。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • Eureka源碼閱讀解析Server服務端啟動流程實例

    Eureka源碼閱讀解析Server服務端啟動流程實例

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

    詳解SpringBoot啟動類的掃描注解的用法及沖突原則

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

    java?-jar命令及SpringBoot通過java?-jav啟動項目的過程

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

    使用springboot訪問圖片本地路徑并映射成url

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

最新評論

曲麻莱县| 栾城县| 灵武市| 鲁山县| 彭阳县| 玛纳斯县| 乳山市| 于都县| 松溪县| 桐乡市| 寿阳县| 大方县| 库车县| 湘阴县| 景谷| 舟山市| 五河县| 浏阳市| 牡丹江市| 峡江县| 桐乡市| 马边| 赤壁市| 徐闻县| 花莲县| 龙海市| 义乌市| 宁陕县| 安多县| 潜山县| 崇文区| 深圳市| 枞阳县| 丹巴县| 泰和县| 全州县| 景谷| 苍南县| 汾阳市| 衢州市| 连州市|