问题:请教这段代码出了什么问题,打印的结果不正确。
 有请各位大虾指点一二public class demo01 {
public static boolean flag=true;
public static void printStr(String str)
{
System.out.println("str.length():"+str.length());
char chr[]=new char[str.length()];
for (int i = 0; i < str.length(); i++) {
chr[str.length()-i-1]=str.charAt(i);
                            //逆序输出字符串
System.out.println(chr);
}

for (int i = 0; i < str.length(); i++) {

System.out.println(chr[i]+"   "+str.charAt(i));
                            //比较数字中的数字是否相匹配
if(chr[i]==str.charAt(i))
{
flag=true;
System.out.println(flag);
}
else
{
flag=false;
}
}
if(flag==true)
{
System.out.println("您输入的为回文数");
}
else
System.out.println("不是回文数。。");
}


public static String count(String str)
{
for (int i = 0; i < str.length(); i++) {
str.indexOf(i);
}
return str;
}
public static void main(String[] args) {
printStr("128321");

}
}
控制台输出结果为:
   123821
1   1
true
2   2
true
3   8
8   3
2   2
true
1   1
true
您输入的为回文数3   8
8   3  在比较时问题出现在这,按理来说输出结果为不是回文数  请大虾们指点指点

解决方案 »

  1.   

    .... 又发,都跟你说了
    else 

    flag=false; 
    break;  //碰到不相等的就退出for循环,不再比较下面的了

      

  2.   

    你小子,上次我给你回贴,你怎么无满意结贴啊?
    还请求让我加你为好友,我也不知道是谁,就同意了.
    刚才才看到那个无满意结贴.我前几天写了一个回文判断的程序:
    http://topic.csdn.net/u/20090923/23/6ec60101-3831-4d92-88fe-57bf24f688eb.html
      

  3.   

    package com.test;public class HWTest {
    public static void main(String[] args) {
    String s = "128321";
    String s2 = new StringBuilder(s).reverse().toString();
    String[] temp = s.split("(?<=\\G.{1})");
    String[] temp2 = s2.split("(?<=\\G.{1})");
    boolean flag = true;
    int sum = 0;
    for (int i = 0; i < temp2.length; i++) {
    if (temp[i].equals(temp2[i])) {
    System.out.println(temp[i] + "\t" + temp2[i]);
    System.out.println("true");
    sum++;
    } else {
    System.out.println(temp[i] + "\t" + temp2[i]);
    System.out.println("false");
    flag = false;
    }
    } if (flag)
    System.out.println("您输入的为回文数");
    else
    System.out.println("您输入的不为回文数"); System.out.println(isHuiWen("123321"));
    System.out.println(isHuiWen("1234321"));
    System.out.println(isHuiWen("12343321")); } /**
     * 判断是否回文
     * 
     * @param s
     * @return
     */
    public static boolean isHuiWen(String s) {
    return new StringBuilder(s).reverse().toString().equals(s);
    }
    }
      

  4.   

    你("128321")。前后斗是11,是true,就将前面的flag刷新为true了,中间的在不是,只要最后的一样还是true,
    具体的代码位置:
    if(flag==true) 

    System.out.println("您输入的为回文数"); 

    else 
    System.out.println("不是回文数。。");