淺談Java語(yǔ)言字符串類(lèi)使用
【摘 要】對于一種編程語(yǔ)言來(lái)說(shuō),字符串處理是經(jīng)常要進(jìn)行的操作,Java語(yǔ)言類(lèi)庫中提供了兩種常用的字符串類(lèi)String類(lèi)和StringBuffer類(lèi)。本文通過(guò)兩個(gè)實(shí)例討論了String類(lèi)和StringBuffer類(lèi)的特點(diǎn)和區別。
【關(guān)鍵詞】Java程序設計;字符串使用;教學(xué)策略
0 引言
所有程序設計語(yǔ)言都要涉及對字符串的處理,在Delphi和C語(yǔ)言中,字符串的處理是用函數來(lái)完成的。而Java作為一種完全面向對象的語(yǔ)言,以類(lèi)的方式提供對字符串的操作。Java語(yǔ)言對字符串進(jìn)行了封裝,主要提供了兩種類(lèi)對字符串進(jìn)行操作,分別是String類(lèi)和StringBuffer類(lèi)。String類(lèi)創(chuàng )建的對象是只讀的字符串,在字符串創(chuàng )建以后,其內容就不能再修改;而StringBuffer類(lèi)創(chuàng )建的是可編輯字符串,所以StringBuffer類(lèi)又叫做可編輯字符串類(lèi),可以用來(lái)處理需要轉變的字符串。
1 判斷字符串是否是回文
所謂回文字符串,就是這個(gè)字符串從前往后讀,和從后往前讀的內容都相同。例如字符串“abccba”就是一個(gè)回文。而字符串“123”就不是回文。判斷一個(gè)字符串是否是回文,可以用String類(lèi)來(lái)判斷,也可以用StringBuffer類(lèi)來(lái)判斷。假設判斷String類(lèi)型的字符串str是否是回文。代碼如下:
int low=0,up=str.length()-1;
while(low if((str.charAt(low))!=str.charAt(up)) return false;
else {low++;up--;}
}
return true;
從以上的代碼中可以看到,判斷String類(lèi)型的字符串str是否是回文,需要一個(gè)一個(gè)遍歷字符串的內容,從前往后第i個(gè)字符和從后往前第i的字符是否相同,如果不相同,返回false,退出循環(huán)。如果已經(jīng)遍歷結束,那么返回true。
如果判斷StringBuffer類(lèi)的字符串str是否是回文,代碼如下:
StringBuffer s1 =new StringBuffer(str);
s1.reverse();
if(str.toString().equals(s1.toString()))
return true;
else
return false;
從以上代碼可以看到,因為StringBuffer作為可編輯字符串,所以提供了reverse()策略,把StringBuffer類(lèi)的字符串內容反轉。在上述代碼中,把原來(lái)str的字符串內容保存在s1中,再判斷s1反轉后,兩個(gè)字符串是否相同。因為String類(lèi)覆蓋了equals策略,可以判斷兩個(gè)字符串內容是否相同。而StringBuffer類(lèi)沒(méi)有覆蓋其父類(lèi)Object類(lèi)的equals策略,所以應用equals策略只能判斷兩個(gè)字符串對象是否是同一個(gè)對象,而不能判斷他們的內容是否相同。所以,要應用toString策略把兩個(gè)StringBuffer類(lèi)的字符串先轉化為String類(lèi)的字符串,然后再比較內容是否相同。
2 兩種類(lèi)型字符串比較
String和StringBuffer類(lèi)的代碼如下,那么輸入結果怎么樣呢?
StringBuffer str1 = new StringBuffer("Hello!");
StringBuffer str2 = str1;
String str3 = new String(str1);
String str4 = str3;
str1.append("This is a StringBuffer!");
System.out.println(str1+"\n"+str2);
str3 = str3.concat("The string is too long.");
System.out.println(str3+"\n"+str4);
在以上代碼中Str1和str2指向同一個(gè)StringBuffer類(lèi)的字符串,所以,當執行append函數時(shí)候,字符串本身發(fā)生變化,所以,輸出str1和str2結果是一樣的。String類(lèi)的兩個(gè)字符串連接的函數是concat,該函數的功能是返回一個(gè)新的字符串,反映兩個(gè)String類(lèi)字符串的連接效果。在上述程序中把連接后的字符串重新賦值給str3,所以str3和str4輸出結果不一樣。通過(guò)以上分析,我們可以得到該程序的輸出結果如下所示。
Hello!This is a StringBuffer!
Hello!This is a StringBuffer!
Hello!The string is too long.
Hello!
3 總結
Java字符串類(lèi)是Java中使用最多的類(lèi)之一,String和StringBuffer他們都可以存儲和操作字符串。本文通過(guò)兩個(gè)實(shí)例,詳細給出了String類(lèi)字符串和StringBuffer可編輯字符串在使用策略上的區別。
【參考文獻】
[1]蹇旭.探析Java中的字符串[J].科技風(fēng),2009(13).
[2]鄭霞,郭磊.Java語(yǔ)言中字符串常量和變量的分析與比較[J].安陽(yáng)師范學(xué)院報,2012(2).
[3]汪文.用JAVA小應用程序實(shí)現正則表達式下字符串的查找[J].九江職業(yè)技術(shù)學(xué)院學(xué)報,2002(2).
【淺談Java語(yǔ)言字符串類(lèi)使用】相關(guān)文章:
淺談農業(yè)類(lèi)課程改革論文11-22
JAVA語(yǔ)言課程設計論文致謝03-22
淺談?dòng)⒄Z(yǔ)課堂用語(yǔ)的使用12-01
淺談西方語(yǔ)言哲學(xué)是語(yǔ)言研究的營(yíng)養缽11-14
淺談教師的語(yǔ)言素養03-04
淺談北京語(yǔ)言的特點(diǎn)及形成的原因06-15
淺談?dòng)⒄Z(yǔ)教學(xué)中的語(yǔ)言知識和語(yǔ)言能力12-04
醫學(xué)論文淺談合理使用抗生素06-29
- 相關(guān)推薦