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

时间:2015-07-13 13:22:09

标签: java

我写了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");
        }   
}

3 个答案:

答案 0 :(得分:2)

试试这个:

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");
        }   
}

答案 1 :(得分:1)

这对你有用。

它使用类java.lang.StringBuilder

reverse()方法
public class Test1 {

    public static void main(String[] args) {
        String original = "madam";
        StringBuilder sb = new StringBuilder(original);
        String reverse = sb.reverse().toString();
        if (original.equals(reverse)) {
            System.out.println("PALINDROME");
        } else {
            System.out.println("NOT A PALINDROME");
        }
    }
}

答案 2 :(得分:1)

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

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

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