Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法找出Java程序检查字符串是否为回文的解决方案_Java - Fatal编程技术网

无法找出Java程序检查字符串是否为回文的解决方案

无法找出Java程序检查字符串是否为回文的解决方案,java,Java,我编写了java代码来确定字符串是否是回文。 但是,我没有得到要求的结果。请建议对代码进行必要的更改 public class Test1 { public static void main(String[] args) { String original="madam"; String rev=""; int len=original.length(); Syste

我编写了java代码来确定字符串是否是回文。 但是,我没有得到要求的结果。请建议对代码进行必要的更改

public class Test1 
{
        public static void main(String[] args)
        {
            String original="madam";
            String rev="";
            int len=original.length();
            System.out.println(len);
            boolean flag=false;
            for(int i=len-1,j=1;i>0;i--,j++)
            {
                if(original.charAt(i)==original.charAt(j))
                        {
                         flag=true;
                         continue;
                        }
                else
                {
                    flag=false;
                    break;
                }
            }

            if(flag)
                System.out.println("palindrome");
            else
                System.out.println("not a polindrom");
        }   
}
试试这个:

public class Test1 
{
        public static void main(String[] args)
        {
            String original="madam";

            int len=original.length();
            System.out.println(len);

            boolean flag=true;

            for(int i=len-1,j=0;i != j;i--,j++)
            {
                if(original.charAt(i) != original.charAt(j))
                        {
                         flag=false;
                         break;
                        }

            }

            if(flag)
                System.out.println("palindrome");
            else
                System.out.println("not a polindrom");
        }   
}
试试这个:

public class Test1 
{
        public static void main(String[] args)
        {
            String original="madam";

            int len=original.length();
            System.out.println(len);

            boolean flag=true;

            for(int i=len-1,j=0;i != j;i--,j++)
            {
                if(original.charAt(i) != original.charAt(j))
                        {
                         flag=false;
                         break;
                        }

            }

            if(flag)
                System.out.println("palindrome");
            else
                System.out.println("not a polindrom");
        }   
}

这对你有用

它使用类的
reverse()
方法


这对你有用

它使用类的
reverse()
方法


字符串在Java中是零索引的。这意味着
j
变量从字符串中的第二个字符开始

尝试将循环标题的
更改为:

for(int i=len-1,j=0;i>j;i--,j++)

字符串在Java中是零索引的。这意味着
j
变量从字符串中的第二个字符开始

尝试将
循环标题的
更改为:

for(int i=len-1,j=0;i>j;i--,j++)

一旦该标志设置为false,则应保持该状态。您的代码将再次将其设置为true。
j
在您的循环中必须为0(而不是1)。此外,代码可以进行更多重构,请检查我的答案。一旦该标志设置为false,您应该保持该状态。您的代码将再次将其设置为true。
j
在您的循环中必须为0(而不是1)。此外,代码可能会进行更多重构,请检查我的答案。@DonRoby哪一个?你为什么不把你的建议放在这里呢?@DonRoby哪一个?你为什么不把你的建议写在这里呢。