浅谈Java语言字符串类使用

进修社 人气:8.12K

【摘 要】对于一种编程语言来说,字符串处理是经常要进行的操作,Java语言类库中提供了两种常用的字符串类String类和StringBuffer类。本文通过两个实例讨论了String类和StringBuffer类的特点和区别。

【关键词】Java程序设计;字符串使用;教学策略

0 引言

所有程序设计语言都要涉及对字符串的处理,在Delphi和C语言中,字符串的处理是用函数来完成的。而Java作为一种完全面向对象的语言,以类的方式提供对字符串的操作。Java语言对字符串进行了封装,主要提供了两种类对字符串进行操作,分别是String类和StringBuffer类。String类创建的对象是只读的字符串,在字符串创建以后,其内容就不能再修改;而StringBuffer类创建的是可编辑字符串,所以StringBuffer类又叫做可编辑字符串类,可以用来处理需要转变的字符串。

1 判断字符串是否是回文

所谓回文字符串,就是这个字符串从前往后读,和从后往前读的内容都相同。例如字符串“abccba”就是一个回文。而字符串“123”就不是回文。判断一个字符串是否是回文,可以用String类来判断,也可以用StringBuffer类来判断。假设判断String类型的字符串str是否是回文。代码如下:

int low=0,up=th()-1;

while(low  if((At(low))!=At(up)) return false;

else {low++;up--;}

}

return true;

从以上的代码中可以看到,判断String类型的字符串str是否是回文,需要一个一个遍历字符串的内容,从前往后第i个字符和从后往前第i的字符是否相同,如果不相同,返回false,退出循环。如果已经遍历结束,那么返回true。

如果判断StringBuffer类的字符串str是否是回文,代码如下:

StringBuffer s1 =new StringBuffer(str);

rse();

if(ring()ls(ring()))

return true;

else

return false;

从以上代码可以看到,因为StringBuffer作为可编辑字符串,所以提供了reverse()策略,把StringBuffer类的字符串内容反转。在上述代码中,把原来str的字符串内容保存在s1中,再判断s1反转后,两个字符串是否相同。因为String类覆盖了equals策略,可以判断两个字符串内容是否相同。而StringBuffer类没有覆盖其父类Object类的equals策略,所以应用equals策略只能判断两个字符串对象是否是同一个对象,而不能判断他们的内容是否相同。所以,要应用toString策略把两个StringBuffer类的字符串先转化为String类的字符串,然后再比较内容是否相同。

2 两种类型字符串比较

String和StringBuffer类的代码如下,那么输入结果怎么样呢?

StringBuffer str1 = new StringBuffer("Hello!");

StringBuffer str2 = str1;

String str3 = new String(str1);

String str4 = str3;

nd("This is a StringBuffer!");

tln(str1+"n"+str2);

str3 = at("The string is too long.");

tln(str3+"n"+str4);

在以上代码中Str1和str2指向同一个StringBuffer类的字符串,所以,当执行append函数时候,字符串本身发生变化,所以,输出str1和str2结果是一样的。String类的'两个字符串连接的函数是concat,该函数的功能是返回一个新的字符串,反映两个String类字符串的连接效果。在上述程序中把连接后的字符串重新赋值给str3,所以str3和str4输出结果不一样。通过以上分析,我们可以得到该程序的输出结果如下所示。

Hello!This is a StringBuffer!

Hello!This is a StringBuffer!

Hello!The string is too long.

Hello!

3 总结

Java字符串类是Java中使用最多的类之一,String和StringBuffer他们都可以存储和操作字符串。本文通过两个实例,详细给出了String类字符串和StringBuffer可编辑字符串在使用策略上的区别。

【参考文献】

[1]蹇旭.探析Java中的字符串[J].科技风,2009(13).

[2]郑霞,郭磊语言中字符串常量和变量的分析与比较[J].安阳师范学院报,2012(2).

[3]汪文.用JAVA小应用程序实现正则表达式下字符串的查找[J].九江职业技术学院学报,2002(2).