您好,登錄后才能下訂單哦!
本篇內容介紹了“java字符串與正則表達式怎么應用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
含義: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,使用時無需導包
字符串一旦創建,長度不可改變
String(char[] value,int m,int n):截取value數組從下標m開始,截取n個字符形成字符串
String(char[] value):將字符數組轉化為字符串
String(bytes[] bytes):使用平臺默認字符集解碼指定字節數組,形成一個字符串
String(bytes[] bytes,String charsetname):使用指定字符集解碼指定字節數組,形成一個字符串
String(bytes[] bytes,int m,int n,String charsetname):使用指定字符集解碼指定字節數組,并從下標m處截取字節,截取n個最終形成一個字符串
方式二:String str="abc";
注意
方式二的創建方式如果是第一次使用字符串,java會在字符串堆中常量池創建一個對象;其他方式相當于直接創建一個對象,若常量池中沒有則也會在常量池中創建一個再次使用相同的內容時,會直接訪問堆中常量池中存在的對象。
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)
返回一個新子串,從執定下標開始,到結束下標為止,但不包含結束下標
static String valueOf(int i)
把int轉成String
char[] toCharArray()
將字符串轉成字符數組
封裝了char[]數組
是可變的字符序列
提供了一組通用的可以對字符內容修改的方法
常用append()來代替字符串做字符串連接”+”
內部字符數組默認初始容量是16:super(str.length() + 16);
如果大于16會嘗試將擴容,新數組大小原來的變成2倍+2,容量如果還不夠,直接擴充到需要的容量大小。int newCapacity = value.length * 2 + 2;
StringBuffer 1.0出道線程安全,StringBuilder1.5出道線程不安全
StringBuffer方法里面有同步關鍵字,StringBuilder里沒有
在執行效率上,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);
含義:正確字符串的格式,常用來判斷用戶輸入的內容是否符合格式的要求,注意是嚴格區分大小寫的。
注意:java字符串正則嚴格按照順序匹配
語法:字符串.Matches(正則)
作用:判斷當前字符串是否匹配正則表達式,若符合則返回true,否則返回false
返回值:boolean
//身份證號的規律:一共是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(正則,子串)
作用:將字符串內符合正則的內容用字串代替
返回值:替換好的字符串
String regex = "\\d[0-9X]"; String s = "he1Xo"; String s1 = s.replaceAll(regex, "ll"); System.out.println(s1);
語法:字符串.split(正則)
作用:以字符串內符合正則表達式的內容來拆分字符串
返回值:拆分好的字符串數組
String regex = "\\d[0-9X]"; String s = "abc23def0Xghi"; String[] split = s.split(regex); System.out.println(Arrays.toString(split));//[abc, def, ghi]
“java字符串與正則表達式怎么應用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。