中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

String字符串有哪些常用操作

發布時間:2021-06-17 13:35:25 來源:億速云 閱讀:145 作者:chen 欄目:web開發

這篇文章主要介紹“String字符串有哪些常用操作”,在日常操作中,相信很多人在String字符串有哪些常用操作問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”String字符串有哪些常用操作”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

字符串的常用操作,記一下。如果有字符串的操作小技巧,好用的工具類,歡迎補全。大家隨意點贊,隨意看看

  • String實現原理

  • String常用方法

  • 字符串的緩存池和String.intern

  • 正則匹配和字符串

  • StringBuffer和StringBuilder

  • spring工具類StringUtils

String實現原理

public final class String implements Serializable,Comparable<String>, CharSequence {     private final char value[];     private int hash; // Default to 0

String有一個value的字符數組,用來保存字符串的。默認編碼是utf-8

String常用方法

//從toffset開始,是否以prefix開頭 public boolean startsWith(String prefix, int toffset) //str出現的最后一次的下標 public int lastIndexOf(String str) //返回下標在beginIndex和endIndex之間的字符串 public String substring(int beginIndex, int endIndex) //連接str,并返回一個新的字符串 public String concat(String str) //匹配regex正則表達式 public boolean matches(String regex)  //替換字符 public String replace(char oldChar, char newChar) //替換字符串 public String replace(CharSequence target, CharSequence replacement) //獲取charsetName編碼的字節數組 public byte[] getBytes(String charsetName) //獲取 public int codePointAt(int index) //分割 public String[] split(String regex, int limit) //轉成小寫 public String toLowerCase() //轉成大寫 public String toUpperCase()  //截取前后空格 public String trim() //elements使用delimiter作為連接符,合并成一個新字符串 public static String join(CharSequence delimiter, CharSequence... elements)    public static String join(CharSequence delimiter, Iterable<? extends CharSequence> elements) //args參數填充進format的占位符,并返回新字符串 public static String format(String format, Object... args) //轉為緩存池的字符串 public native String intern()

使用示例

String data = "String字符串操作-必知必備"; System.out.println(data.startsWith("St",0)); System.out.println(data.startsWith("St",5)); ---------- true false

字符串的格式化輸出

public static String format(String format, Object... args)

System.out.println(String.format("%s-%s","wst","csc")); -------- wst-csc

字符串的緩存池和String.intern

string.intern();intern先判斷常量池是否存相同字符串,存在則返回該引用;否則在常量池中記錄堆中首次出現該字符串的引用,并返回該引用。

如果是先執行 String s = "st"  ;相當于執行了intern();先在常量池創建"st",并且將引用A存入常量池,返回給s。此時String("hello").intern()會返回常量池的引用A返回

使用示例

public static void main(String[] args) throws Exception {         String one = "st";         String two = new String("st");         String three = two.intern();         System.out.println(two == one);         System.out.println(three == one);     } --------------- false true

字符串和正則匹配、Matcher

字符說明
\將下一字符標記為特殊字符、文本、反向引用或八進制轉義符。例如,"n"匹配字符"n"。"\n"匹配換行符,"\("匹配"("
^匹配輸入字符串開始的位置。如果設置了 RegExp 對象的 Multiline 屬性,^ 還會與"\n"或"\r"之后的位置匹配
$匹配輸入字符串結尾的位置。如果設置了 RegExp 對象的 Multiline 屬性,$ 還會與"\n"或"\r"之前的位置匹配
*零次或多次匹配前面的字符或子表達式。例如,zo* 匹配"z"和"zoo"。* 等效于 {0,}
+一次或多次匹配前面的字符或子表達式。例如,"zo+"與"zo"和"zoo"匹配,但與"z"不匹配。+ 等效于 {1,}
?零次或一次匹配前面的字符或子表達式。例如,"do(es)?"匹配"do"或"does"中的"do"。? 等效于 {0,1}
{n}n 是非負整數。正好匹配 n 次。例如,"o{2}"與"Bob"中的"o"不匹配,但與"food"中的兩個"o"匹配
{n,}n 是非負整數。至少匹配 n 次。例如,"o{2,}"不匹配"Bob"中的"o",而匹配"foooood"中的所有 o。"o{1,}"等效于"o+"。"o{0,}"等效于"o*"
{n,m}m 和 n 是非負整數,其中 n <= m。匹配至少 n 次,至多 m 次。例如,"o{1,3}"匹配"fooooood"中的頭三個 o。'o{0,1}' 等效于 'o?'。注意:您不能將空格插入逗號和數字之間。
?當此字符緊隨任何其他限定符(*、+、?、{n}、{n,}、{n,m})之后時,匹配模式是"非貪心的"。"非貪心的"模式匹配搜索到的、盡可能短的字符串,而默認的"貪心的"模式匹配搜索到的、盡可能長的字符串。例如,在字符串"oooo"中,"o+?"只匹配單個"o",而"o+"匹配所有"o"。
.匹配除"\r\n"之外的任何單個字符。若要匹配包括"\r\n"在內的任意字符,請使用諸如"[\s\S]"之類的模式。
\n換行符匹配。等效于 \x0a 和 \cJ
\r匹配一個回車符。等效于 \x0d 和 \cM
\s匹配任何空白字符,包括空格、制表符、換頁符等
\d數字字符匹配。等效于 [0-9]
[a-z]字符范圍。匹配指定范圍內的任何字符。例如,"[a-z]"匹配"a"到"z"范圍內的任何小寫字母

使用示例

public static void main(String[] args) throws Exception {         String content = "I am st ! ";         String pattern = ".*st.*";         boolean isMatch = Pattern.matches(pattern, content);         System.out.println("字符串中是否包含了 'st' 子字符串? " + isMatch);     } --------------- 字符串中是否包含了 'st' 子字符串? true

StringBuffer和StringBuilder

StringBuffer、StringBuilder和String一樣,也用來代表字符串。String類是不可變類,每次都要重新申請內存,不過StringBuffer和StringBuilder是事先申請緩存內存,在拼接變長且較長的字符串時,性能比String好

StringBuffer是線程安全的,每一次加減操作都是加上鎖的;StringBuilder則是StringBuffer無鎖版本。如果對線程安全不了解,建議使用StringBuffer,不需考慮加鎖會帶來性能的損耗,因為jvm會自動視情況優化為無鎖操作

spring工具類StringUtils

public static boolean isEmpty(Object str) //是否含有空格符 public static boolean containsWhitespace(CharSequence str)  //截取兩邊空格符 public static String trimWhitespace(String str) //替換所有空格符 public static String trimAllWhitespace(String str) //獲取文件名 public static String getFilename(String path)

到此,關于“String字符串有哪些常用操作”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

即墨市| 宜川县| 沂南县| 滨海县| 饶平县| 鄱阳县| 富锦市| 南召县| 宝兴县| 大英县| 乌兰浩特市| 玉树县| 溆浦县| 凤城市| 黄陵县| 陵水| 枣庄市| 桂林市| 巴马| 五原县| 黑龙江省| 怀集县| 舞钢市| 光泽县| 稻城县| 深州市| 嘉峪关市| 伽师县| 花莲县| 拉孜县| 青河县| 澜沧| 墨竹工卡县| 遂昌县| 赤壁市| 十堰市| 女性| 墨竹工卡县| 石棉县| 仁寿县| 潍坊市|