用到StringBuffer的reverse()方法将字符串反转,和以前的字符串进行比较,若相等则为回文,否则不是。
代码如下
class huiwen
{
public static void main(String[] args)
{
String str="abcdcgtrba";
if (isHuiWen(str))
{
System.out.println("该字符串是回文");
return ;
}
System.out.println("该字符串不是回文");
}
public static boolean isHuiWen(String str)
{
//只要把字符串翻转后得到的依然是和反转前相同的字符,即为回文
//此处用到StringBuffer
StringBuffer sb=new StringBuffer(str);
if (sb.reverse().toString().equals(str))
{
return true;
}
return false;
}
}
打印结果:
该字符不是回文
还有另一种方式,不使用StringBuffer
代码如下
class huiwen
{
public static void main(String[] args)
{
String str="abcdcgtrba";
String strr=new String(StringReverse(str));
if (strr.equals(str))
{
System.out.println("该字符串是回文");
return ;
}
System.out.println("该字符串不是回文");
}
//自定义反转函数
public static char[] StringReverse(String str)
{
//如String str="abcdef"
char[] ch=str.toCharArray() ;
int start=0;
int end=ch.length-1;
char strTemp=' ';
while (start<end)
{
strTemp=ch[start];
ch[start]=ch[end];
ch[end]=strTemp;
start++;
end--;
}
return ch;
}
}
这样也能实现结果。