在Java語(yǔ)言中將字符串作為對(duì)象來處理,通過java.lang包中的String類來創(chuàng)建字符串對(duì)象。
一、String類
可以通過下面語(yǔ)法格式來聲明字符串變量:
String str=[null]
String:指定該變量為字符串類型。
str:任意有效的標(biāo)識(shí)符,表示字符串變量的名稱。
null:如果省略null,表示str變量是未初始化的狀態(tài),否則表示聲明的字符串的值等于null。
二、連接字符串
使用“+”運(yùn)算符可以實(shí)現(xiàn)連接多個(gè)字符串的功能。“+”運(yùn)算符可以連接多個(gè)運(yùn)算符并產(chǎn)生一個(gè)String對(duì)象。示例代碼如下:
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);
}
}
運(yùn)行結(jié)果如下圖:
三、獲取字符串信息
3.1獲取字符串長(zhǎng)度
使用String類的length()方法可獲取聲明的字符串對(duì)象的長(zhǎng)度。語(yǔ)法如下:
str.length();
其中,str為字符串對(duì)象。實(shí)例代碼如下:
String str="we are students";
int size=str.length();
上述代碼是將字符串str的長(zhǎng)度賦值給int型變量size,此時(shí)變量size的值為15,這表示length()方法返回的字符串的長(zhǎng)度包括字符串中的空格。
3.2字符串查找
String類提供了兩種字符串查找的方法,即indexOf()和lastIndexOf()方法。這兩種方法都允許在字符串中搜索指定條件的字符或者字符串。indexOf()方法返回的是搜索的字符或字符串首次出現(xiàn)的位置,lastIndexOf()方法返回的是搜索的字符或字符串最后一次出現(xiàn)的位置。
(1)indexOf(String s)
該方法用于返回參數(shù)字符串s在指定字符串中首次出現(xiàn)的位置。當(dāng)調(diào)用字符串的indexOf()方法,會(huì)從當(dāng)前字符串的開始位置搜索s的位置;如果沒有檢測(cè)到字符串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()方法時(shí),會(huì)從當(dāng)前字符串的開始位置檢索參數(shù)字符串str,并將最后一次出現(xiàn)str的索引位置返回。如果沒有檢測(cè)到字符串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的長(zhǎng)度是:"+str.length());
}
}
運(yùn)行結(jié)果如下:
注意:如果lastIndexOf()方法中的參數(shù)是空字符串""(沒有空格),則返回的結(jié)果與調(diào)用該字符串length()方法的返回結(jié)果相同。
3.3獲取指定索引位置的字符
使用charAt()方法可將指定索引處的字符返回。語(yǔ)法如下:
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);
}
}
運(yùn)行結(jié)果如下:
四、字符串操作
4.1獲取子字符串
通過String類的substring()方法對(duì)字符串進(jìn)行截取。這些方法的共同點(diǎn)就是利用字符串的下標(biāo)進(jìn)行截取,且應(yīng)明確字符串下標(biāo)是從0開始的。
(1)substring(int beginIndex)
該方法返回的是從指定索引位置開始截取直到該字符串結(jié)尾的子串。示例代碼如下:
String str="Hello Word";
String substr=str.substring(3);//此時(shí)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);
}
}
運(yùn)行結(jié)果如下:
4.2去除空格
trim()方法返回字符串的副本,忽略前導(dǎo)空格和尾部空格。語(yǔ)法如下:
str.trim();
示例代碼如下:
package com.example;
public class Blak {
public static void main(String args[]){
String str=" java class ";
System.out.println("字符串原來的長(zhǎng)度:"+str.length());
System.out.println("去掉空格后的長(zhǎng)度:"+str.trim().length());
}
}
運(yùn)行結(jié)果如下:
4.3字符串替換
replace()方法可實(shí)現(xiàn)將指定的字符或字符串替換為新的字符或字符串。語(yǔ)法如下:
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判斷字符串是否相等
對(duì)字符串對(duì)象進(jìn)行比較不能簡(jiǎn)單的使用比較運(yùn)算符“==”,因?yàn)楸容^運(yùn)算符比較的是兩個(gè)字符串的地址是否相同。即使兩個(gè)字符串的內(nèi)容相同,兩個(gè)對(duì)象的內(nèi)存地址也是不同的,使用比較運(yùn)算符仍然會(huì)返回false。
(1)equals()方法
如果兩個(gè)字符串具有相同的字符和長(zhǎng)度,則使用equals()方法進(jìn)行比較時(shí)返回true。
(2)equalsIgnoreCase()方法
使用equals()方法對(duì)字符串進(jìn)行比較時(shí)是區(qū)分大小寫的,而使用equalsIgnoreCase()方法是在忽略了大小寫的情況下比較兩個(gè)字符串是否相等,返回結(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);
}
}
運(yùn)行結(jié)果如下: