回文数问题?

wym_2009 2009-09-24 11:04:32
问题:请教这段代码出了什么问题,打印的结果不正确。
有请各位大虾指点一二。。。

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 在比较时问题出现在这,按理来说输出结果为不是回文数

请大虾们指点指点。。。
...全文
194 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yieryi521 2009-09-25
  • 打赏
  • 举报
回复
你("128321")。前后斗是11,是true,就将前面的flag刷新为true了,中间的在不是,只要最后的一样还是true,
具体的代码位置:
if(flag==true)
{
System.out.println("您输入的为回文数。。。");
}
else
System.out.println("不是回文数。。");
}

猿敲月下码 2009-09-25
  • 打赏
  • 举报
回复
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);
}
}
bigbro001 2009-09-25
  • 打赏
  • 举报
回复
各位同学同事要注意结贴啊,人家好心回帖帮忙解决难题,怎么也要给人家的劳动一点必要的尊重吧~

[Quote=引用 2 楼 bigbug9002 的回复:]
你小子,上次我给你回贴,你怎么无满意结贴啊?
还请求让我加你为好友,我也不知道是谁,就同意了.
刚才才看到那个无满意结贴.

我前几天写了一个回文判断的程序:
http://topic.csdn.net/u/20090923/23/6ec60101-3831-4d92-88fe-57bf24f688eb.html


[/Quote]
bigbug9002 2009-09-24
  • 打赏
  • 举报
回复
你小子,上次我给你回贴,你怎么无满意结贴啊?
还请求让我加你为好友,我也不知道是谁,就同意了.
刚才才看到那个无满意结贴.

我前几天写了一个回文判断的程序:
http://topic.csdn.net/u/20090923/23/6ec60101-3831-4d92-88fe-57bf24f688eb.html

gesanri 2009-09-24
  • 打赏
  • 举报
回复
.... 又发,都跟你说了
else
{
flag=false;
break; //碰到不相等的就退出for循环,不再比较下面的了
}

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧