问题:请教这段代码出了什么问题,打印的结果不正确。
有请各位大虾指点一二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 在比较时问题出现在这,按理来说输出结果为不是回文数 请大虾们指点指点
有请各位大虾指点一二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 在比较时问题出现在这,按理来说输出结果为不是回文数 请大虾们指点指点
解决方案 »
- new求解答!
- 如何将byte[]中的内容转成字符哦
- ascii 码问题已经困扰我两天了
- 16进制两个数之间的算法
- java正则表达式String.matches有BUG!
- JDBC操作MS SQL数据库更新数据,如果有触发器,则stmt.executeUpdate(strSql)无法正确返回受影响的行数,怎么办?
- 利用itext生成pdf多页报表
- 关于内存回收的问题,请高手指教!
- 请问哪里有最新 《Java 2 核心技术 卷II:高级性能(V1.3)5E》和《最新 Java 2 核心技术 卷I:原理(原书第5版) 》 下载
- 用java的darwline画线时如何使线增粗?
- DBUnit问题
- 为什么SWING不可以镂空
else
{
flag=false;
break; //碰到不相等的就退出for循环,不再比较下面的了
}
还请求让我加你为好友,我也不知道是谁,就同意了.
刚才才看到那个无满意结贴.我前几天写了一个回文判断的程序:
http://topic.csdn.net/u/20090923/23/6ec60101-3831-4d92-88fe-57bf24f688eb.html
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);
}
}
具体的代码位置:
if(flag==true)
{
System.out.println("您输入的为回文数");
}
else
System.out.println("不是回文数。。");
}