在Java語言中將字符串作為對象來處理忿墅,通過java.lang包中的String類來創(chuàng)建字符串對象卸留。
一、String類
可以通過下面語法格式來聲明字符串變量:
String str=[null]
String:指定該變量為字符串類型。
str:任意有效的標(biāo)識符何什,表示字符串變量的名稱譬巫。
null:如果省略null咖楣,表示str變量是未初始化的狀態(tài),否則表示聲明的字符串的值等于null芦昔。
二诱贿、連接字符串
使用“+”運算符可以實現(xiàn)連接多個字符串的功能」径校“+”運算符可以連接多個運算符并產(chǎn)生一個String對象珠十。示例代碼如下:
package com.example;
public class Join {
public static void main(String args[]){
String s1=new String("hello");
String s2=new String("java");
String s=s1+" "+s2;
System.out.println(s);
}
}
運行結(jié)果如下圖:
三、獲取字符串信息
3.1獲取字符串長度
使用String類的length()方法可獲取聲明的字符串對象的長度凭豪。語法如下:
str.length();
其中焙蹭,str為字符串對象。實例代碼如下:
String str="we are students";
int size=str.length();
上述代碼是將字符串str的長度賦值給int型變量size嫂伞,此時變量size的值為15孔厉,這表示length()方法返回的字符串的長度包括字符串中的空格。
3.2字符串查找
String類提供了兩種字符串查找的方法帖努,即indexOf()和lastIndexOf()方法撰豺。這兩種方法都允許在字符串中搜索指定條件的字符或者字符串。indexOf()方法返回的是搜索的字符或字符串首次出現(xiàn)的位置拼余,lastIndexOf()方法返回的是搜索的字符或字符串最后一次出現(xiàn)的位置污桦。
(1)indexOf(String s)
該方法用于返回參數(shù)字符串s在指定字符串中首次出現(xiàn)的位置。當(dāng)調(diào)用字符串的indexOf()方法匙监,會從當(dāng)前字符串的開始位置搜索s的位置凡橱;如果沒有檢測到字符串s小作,該方法的返回值為-1。示例代碼如下:
String str="we are students";
int size=str.indexOf("a");//變量size的值為3
(2)lastIndexOf(String s)
該方法用于返回指定字符串最后一次出現(xiàn)的索引位置梭纹。當(dāng)調(diào)用字符串的lastIndexOf()方法時躲惰,會從當(dāng)前字符串的開始位置檢索參數(shù)字符串str,并將最后一次出現(xiàn)str的索引位置返回变抽。如果沒有檢測到字符串s础拨,該方法的返回值為-1。示例代碼如下:
package com.example;
public class Text1 {
public static void main(String args[]){
String str="we are students";
int size=str.lastIndexOf("");
System.out.println("空字符在字符串str中的索引位置是:"+size);
System.out.println("字符串str的長度是:"+str.length());
}
}
運行結(jié)果如下:
注意:如果lastIndexOf()方法中的參數(shù)是空字符串""(沒有空格)绍载,則返回的結(jié)果與調(diào)用該字符串length()方法的返回結(jié)果相同诡宗。
3.3獲取指定索引位置的字符
使用charAt()方法可將指定索引處的字符返回。語法如下:
str.charAt(int index);
str:任意字符串击儡。
index:整數(shù)型塔沃,用于指定要返回字符的下標(biāo)。
示例代碼如下:
package com.example;
public class Ref {
public static void main(String args[]){
String str="hello word";
char mychar=str.charAt(6);
System.out.println("字符串str中索引位置是5的字符是:"+mychar);
}
}
運行結(jié)果如下:
四阳谍、字符串操作
4.1獲取子字符串
通過String類的substring()方法對字符串進行截取蛀柴。這些方法的共同點就是利用字符串的下標(biāo)進行截取,且應(yīng)明確字符串下標(biāo)是從0開始的矫夯。
(1)substring(int beginIndex)
該方法返回的是從指定索引位置開始截取直到該字符串結(jié)尾的子串鸽疾。示例代碼如下:
String str="Hello Word";
String substr=str.substring(3);//此時substr的值為lo Word
(2)substring(int beginIndex,int endIndex)
該方法返回的是從字符串某一索引位置開始截取至某一索引位置結(jié)束的子串训貌。示例代碼如下:
package com.example;
public class Subs {
public static void main(String args[]){
String str="hello word";
String substr=str.substring(0,3);
System.out.println(substr);
}
}
運行結(jié)果如下:
4.2去除空格
trim()方法返回字符串的副本制肮,忽略前導(dǎo)空格和尾部空格。語法如下:
str.trim();
示例代碼如下:
package com.example;
public class Blak {
public static void main(String args[]){
String str=" java class ";
System.out.println("字符串原來的長度:"+str.length());
System.out.println("去掉空格后的長度:"+str.trim().length());
}
}
運行結(jié)果如下:
4.3字符串替換
replace()方法可實現(xiàn)將指定的字符或字符串替換為新的字符或字符串递沪。語法如下:
str.replace(char oldChar,char newChar);
oldChar:要替換的字符或者字符串豺鼻。
newChar:用于替換原來字符串的內(nèi)容。
示例代碼如下:
package com.example;
public class NewStr {
public static void main(String args[]){
String str=" address";
String newstr=str.replace("a","A");
System.out.println(newstr);
}
}
4.4判斷字符串是否相等
對字符串對象進行比較不能簡單的使用比較運算符“==”款慨,因為比較運算符比較的是兩個字符串的地址是否相同儒飒。即使兩個字符串的內(nèi)容相同,兩個對象的內(nèi)存地址也是不同的檩奠,使用比較運算符仍然會返回false约素。
(1)equals()方法
如果兩個字符串具有相同的字符和長度,則使用equals()方法進行比較時返回true笆凌。
(2)equalsIgnoreCase()方法
使用equals()方法對字符串進行比較時是區(qū)分大小寫的,而使用equalsIgnoreCase()方法是在忽略了大小寫的情況下比較兩個字符串是否相等士葫,返回結(jié)果仍為boolean類型乞而。示例代碼如下:
package com.example;
public class Opinion {
public static void main(String args[]){
String s1=new String("abc");
String s2=new String("ABC");
boolean b=s1.equals(s2);
boolean b2=s1.equalsIgnoreCase(s2);
System.out.println(s1+" equals "+s2+":"+b);
System.out.println(s1+" equalsIgnoreCase "+s2+":"+b2);
}
}
運行結(jié)果如下: