站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题关于用reverse方法验证回文串的问题

关于用reverse方法验证回文串的问题

摘要: 关于用reverse方法验证回文串的问题


package mypkg;
import java.util.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args)
{
String str="a_d-kdlssl,d/k//da";
System.out.println(str);
StringTokenizer st=new StringTokenizer(str,"_-,///");
String str2="";
while(st.hasMoreTokens())
{
str2=str2.concat(st.nextToken());
System.out.println(str2);
}
System.out.println("");

//反转的方法↓
System.out.print("Reverse方法: ");
StringBuffer sb=new StringBuffer(str2);
//sb.append(str2);
//sb.reverse();
StringBuffer sb2=new StringBuffer(str2);
System.out.println("After reverse(): sb:"+sb);
System.out.println("sb2: "+sb2);
System.out.println(sb.length());
System.out.println(sb2.length());
if(sb.equals(sb2))
System.out.println("It's equal.");
else
System.out.println("It's not equal");
//反转的方法↑

//普通方法↓
System.out.print("普通方法: ");
int left=0;
int right=str2.length()-1;
boolean equal=false;
while(left {
if(str2.charAt(left)==str2.charAt(right))
{
left++;
right--;
equal=true;
}
else
{
equal=false;
break;
}
}
if(equal)
System.out.println("It's equal .");
else
System.out.println("It's not equal .");
//普通方法↑

}

}







请教下
我用了两个方法来验证是否是回文串(不受符号的扰乱限制)
所以用了StringToken把它重新整理了一次

但是用reverse()方法的时侯就出现错误了
明明a_d-kdlssl,d/k//da 去掉符号后是 adkdlssldkda shi是个回文串 但是用reverse()方法得出的是不相等



顶下


sb.equals(sb2);//not equal

change it like this:

String s1 = new String(sb);
String s2 = new String(sb2);
if(s1.equals(s2))
System.out.println("it is equals");
else
...


↑返回目录
前一篇: SCJP在线自测,试一把,自动判分,有意思
后一篇: 环境变量的设置