1、String的常用方法
- length():獲取字符串的長度(字符個數(shù))
String str = "我愛Java!"; int len = str.length(); //獲取str的長度 System.out.println(len); //7 - trim():去除當前字符串兩邊的空白字符(場景:注冊時,防止誤觸空格)
String str = " hello world "; System.out.println(str); // hello world str = str.trim(); //去除str兩邊的空白字符,并將去除之后的新的對象存儲到str中 System.out.println(str); //hello world - toUpperCase()/toLowerCase():將當前字符串中的英文部分給轉(zhuǎn)換為全大寫/全小寫(場景:驗證碼)
String str = "我愛Java!"; String upper = str.toUpperCase(); //將str中的英文部分轉(zhuǎn)換為全大寫,并存入upper中 System.out.println(upper); //我愛JAVA! String lower = str.toLowerCase(); //將str中的英文部分轉(zhuǎn)換為全小寫,并存入lower中 System.out.println(lower); //我愛java! - startsWith()/endsWith():判斷當前字符串是否是以給定的字符串開始的/結(jié)束的(一些有要求的特定場景)
String str = "thinking in java"; //java編程思想(經(jīng)典書---工具書) boolean starts = str.startsWith("think"); //判斷str是否是以think開頭的 System.out.println(starts); //true boolean ends = str.endsWith(".png"); //判斷str是否是以.png結(jié)尾的 System.out.println(ends); //false - charAt():返回當前字符串指定位置上的字符----根據(jù)位置找字符
String str = "thinking in java"; char c = str.charAt(9); //獲取str中下標9所對應的字符 System.out.println(c); //i - indexOf()/lastIndexOf():檢索給定字符串在當前字符串中第一次/最后一次出現(xiàn)的位置,根據(jù)字符串找位置
String str = "thinking in java"; int index = str.indexOf("in"); //檢索in在str中第1次出現(xiàn)的位置 System.out.println(index); //2 //從下標為3的位置開始找in第1次出現(xiàn)的位置 index = str.indexOf("in",3); System.out.println(index); //5 index = str.indexOf("abc"); //若字符串在str中不存在,則返回-1 System.out.println(index); //-1 index = str.lastIndexOf("in"); //找in最后一次出現(xiàn)的位置 System.out.println(index); //9 - substring():截取當前字符串中指定范圍內(nèi)的字符串(含頭不含尾--包含start,但不包含end)
String str = "www.baidu.com"; int start = str.indexOf("."); //3,獲取第1個點之后的下標 int end = str.lastIndexOf("."); //9,獲取最后一個點的下標 String name = str.substring(start+1,end); //截取下標4到下標8之內(nèi)的字符串 System.out.println(name); //baidu name = str.substring(4); //從下標4一直到最后 System.out.println(name); //baidu.com - 靜態(tài)方法valueOf():將其它數(shù)據(jù)類型轉(zhuǎn)換為String
int a = 123; String s1 = String.valueOf(a); //將int型變量a轉(zhuǎn)換為String類型并賦值給s1 System.out.println(s1); //123---字符串類型 double b = 123.456; String s2 = String.valueOf(b); //將double型變量b轉(zhuǎn)換為String類型并賦值給s2 System.out.println(s2); //123.456---字符串類型 String s3 = b+""; //任何類型與字符串相連,結(jié)果都變?yōu)樽址愋?,效率?一會兒講) System.out.println(s3); //123.456---字符串類型
2、StringBuilder
- 由于String是不變對象,每次修改內(nèi)容都會創(chuàng)建新的對象,因此String不適合頻繁修改操作,為了解決這個問題,java提供了StringBuilder類。
- StringBuilder是專門用于修改字符串的一個類,內(nèi)部維護一個可變的char數(shù)組,所做操作都是在這個數(shù)組之上進行的,修改速度、性能優(yōu)秀,并且提供了修改字符串的常見方式:增、刪、改、插。
3、 StringBuilder的常用方法
append():增加內(nèi)容------------------------增
delete():刪除部分內(nèi)容--------------------刪
replace():替換部分內(nèi)容-------------------改
-
insert():插入內(nèi)容----------------------------插
String str = "好好學習Java"; //復制str的內(nèi)容到builder中---------好好學習Java StringBuilder builder = new StringBuilder(str); //append():追加內(nèi)容-----在末尾追加 builder.append(",為了找個好工作"); System.out.println(builder); //好好學習Java,為了找個好工作 //replace():替換部分內(nèi)容(含頭不含尾) //將下標為9到15的內(nèi)容替換為---就是為了改變世界 builder.replace(9,16,"就是為了改變世界"); System.out.println(builder); //好好學習Java,就是為了改變世界 //delete():刪除部分內(nèi)容(含頭不含尾) builder.delete(0,8); //刪除下標為0到7的 System.out.println(builder); //,就是為了改變世界 //insert():插入內(nèi)容 builder.insert(0,"活著"); //在下標為0的位置插入活著 System.out.println(builder); //活著,就是為了改變世界 /* //StringBuilder的創(chuàng)建方式: StringBuilder builder1 = new StringBuilder(); //空字符串 StringBuilder builder2 = new StringBuilder("abc"); //abc串 //基于String來創(chuàng)建StringBuilder String str = "abc"; StringBuilder builder3 = new StringBuilder(str); //abc串 String str2 = builder3.toString(); //將builder3轉(zhuǎn)換為String類型 */
4、 補充
數(shù)組是length
屬性,String字符串是length方法-
字符串內(nèi)容若需要查看,那建議String-------------------實際應用中一般都是查看
字符串內(nèi)容若需要頻繁修改,那建議StringBuilder
-
StringBuilder和StringBuffer的區(qū)別:------現(xiàn)在先不用糾結(jié),學完線程之后才能理解
- StringBuilder:非線程安全的,并發(fā)處理的,性能稍快---------一般都是用StringBuilder
- StringBuffer:線程安全的,同步處理的,性能稍慢