java String、StringBuilder 、正則表達式


String 字符串(引用類型) 修改字符串 是重新創建 賦值地址

 

構造方法

public class StringDemo2 {

public static void main(String[] args) {

String s1 = "hello";

String s2 = "hello";   s2指向同一地址  存儲在堆的常量池中

String s3 = new String("hello"); 創建對象 存儲了s1地址

 

System.out.println(s1==s2); //true      地址相等

System.out.println(s1==s3); //false

System.out.println(s1.equals(s3));//true 內容相等 重寫了Object

 

byte[] bytes={65,66,67,68};  正數:字母  負數:漢字(兩個字節)

String str=new String(bytes);    // byte數組 轉 字符串

String str=new String(bytes,1,2); //(數組,始值  個數)

 

byte[] bytes = str.getBytes();  // 字符串 轉 byte數組

 

char[] ch={'','a','2'};

String str=new String(ch);     // 字符數組 轉 字符串

String str=new String(ch,0,1);  // 字符數組 轉 字符串

 

char[] chs = str.toCharArray();  //字符串 轉 字符數組

}

}

方法

str.toString() 獲取字符串對象的內容  輸出時 自動調用

str.isEmpty() 判斷字符串是不是空串

str.length() 返回字符串長度

str.charAt(0) 返回索引處字符

 

str.equals(str2); 判斷字符串 指定字符串 內容是否相同

str.equalsIgnoreCase(str3); 判斷字符串內容是否相同  忽略大小寫

 

str.substring(1) 截取開始索引 到最后 的字符串

str.substring(2, 4) 截取開始索引 到終止索引(不包括) 的字符串

 

str.indexOf("bcd") 返回第一次出現該字符串的索引,沒有返回-1

str.contains("bcd") 判斷是否包含指定字符串true/false

 

str.startsWith("Demo") 判斷是否以給定字符串開頭

str.endsWith("java") 判斷是否以給定字符串結尾

 

 

str.toLowerCase() 把字符串轉換為小寫字符串

str.toUpperCase() 把字符串轉換為大寫字符串

 

str.trim()     去掉字符串兩端空格

str.replace(oldChar, newChar)   將替換字符串中的老字符,為新字符

str.replace(oldstr, newstr) 將字符串中的老字符串,替換為新字符串

String[] strArray = str.split(",")   按照指定符號分割字符串

 

StringBuilder 字符串緩沖區(高效)  StringBuffer() 用法相同

 

public class StringBuilderDemo {

public static void main(String[] args) {

StringBuilder sb = new StringBuilder(); //構造方法   初始為空串

StringBuilder sb = new StringBuilder("world");//構造方法 str sb

String str = sb.toString();       //str sb    輸出時 自動調用

 

StringBuilder sb2 = sb.append("hello");//添加數據(任意類型)

System.out.println(sb == sb2); //true 地址相同

 

sb.delete(1, 4);    //刪除 [1,4)字符

sb.deleteCharAt(1); //刪除字符

sb.insert(2, "it");   //在指定位置插入

sb.replace(1, 4, "java");//替換[1,4)的字符串為"java"

sb.reverse();反轉

 

sb.length()    //返回長度(字符數)

sb.charAt(0)  返回索引處的字符

sb.indexOf("java",5) 查找第一次出現字符串的索引 從指定索引處

 

String str = sb.substring(0,1); 截取 [0,1) 返回字符串

String str = sb.substring(1); 截取[1,最后] 返回字符串

sb.append("hello").append(true).append(100); //鏈式調用

}

}

正則表達式(簡寫為regex   Pattern類  是字符串)

匹配規則

字符: 字符類:

X 字符 [abc] ab c

\\ 轉義\ [^abc] 除了 ab c以外的任何字符

\t 制表符 [a-zA-Z] a z A Z

\n 換行符 [0-9] 09數字

\r 回車符 [a-zA-Z_0-9] 字母或數字或下划線

 

預定義字符類:

. 點代表的是任何字符 \\. 匹配 點

\d 09數字 \D取反 \\d

\w 字母或數字或下划線 \W取反 \\w

 

數量詞: 邊界匹配器:

X? X出現0~1 ^  行的開頭

X* X出現0~∞次 $  行的結尾

X+ X出現1~∞次 \b  單詞邊界

X{n} X出現恰好 n

X{n,} X出現至少 n

X{n,m} X出現 n ~ m

 

regex = "(.)\\1";

點表示任意字符,\\1取第一個括號匹配的內容,加號匹配1次以上

某個字符重復兩次或兩次以上

 

 

正則表達式的常用方法

           

String str = "18369657617";

String regex = "1[34578][0-9]{9}";

boolean flag2 = str.matches(regex); 判斷字符串是否匹配

 

String s = "18-22-40-65";

String regex = "-";

String[] result = s.split(regex); 用分隔符 分割字符串 為 字符串數組

 

String s = "Hello12345World6789012";

String regex = "[0-9]";

String result = s.replaceAll(regex, "*");字符串中符合規則的替換為 新字符

 

 

 

 

 

 

字符串 數字 轉換

public class Demo03 {

public static void main(String[] args) {

 

// 字符串轉成基本類型Xxx.parseXxx(String s);  xxx:基本數據類型

String str="12";

System.out.println(str+1); // 121

int s1=Integer.parseInt(str); // str內容必須是int格式

System.out.println(s1+1); // 13

 

String str2="2.3";

double s2=Double.parseDouble(str2);

System.out.println(s2+1); // 3.3

 

//基本類型 轉 字符串

String s1=12+""; // 方法1

String s3=String.valueOf(2.3); // 方法2

System.out.println(10+s3); // 102.3

 

String s4=Integer.toString(12); // 方法3  有參數 不是重寫obj

System.out.println(s4+1); // 13

}

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM