Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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 用于确定回文的程序仅执行else条件_Java_Palindrome - Fatal编程技术网

Java 用于确定回文的程序仅执行else条件

Java 用于确定回文的程序仅执行else条件,java,palindrome,Java,Palindrome,我正在尝试获取字符串的回文,下面是我的代码。问题是,它只执行else条件 public class Palindrome { public static void main(String[] args) { String name = "aba"; StringBuilder sb = new StringBuilder(); sb.append(name); sb = sb.reverse();

我正在尝试获取字符串的回文,下面是我的代码。问题是,它只执行else条件

public class Palindrome {

    public static void main(String[] args) {

        String name = "aba";

        StringBuilder sb = new StringBuilder();

        sb.append(name);

        sb = sb.reverse();
        System.out.println(sb);
        System.out.println(name);
        if (sb.equals(name)) {
            System.out.println(name + " is palindrome");
        } else 
           System.out.println(name + " isn't palindrome");
     }
}

只执行
else
条件。

您需要使用
sb.toString()


问题是您试图将StringBuilder的实例与字符串进行比较。这是两个不同的类别。您应该首先将生成器转换为字符串,然后进行比较

public static void main(String[] args)
    {
        String name = "aba";

        StringBuilder sb = new StringBuilder();

        sb.append(name);
        sb = sb.reverse();
        System.out.println(sb);
        System.out.println(name);
        if (sb.toString().equals(name))
        {
            System.out.println(name + " is palindrome");
        } else System.out.println(name + " isn't palindrome");
    }

尝试比较两个
String
s,而不是
StringBuilder
String
,如果(sb.toString().equals(name)),也可以使用
sb.toString().equals(name)
作为条件。
public static void main(String[] args)
    {
        String name = "aba";

        StringBuilder sb = new StringBuilder();

        sb.append(name);
        sb = sb.reverse();
        System.out.println(sb);
        System.out.println(name);
        if (sb.toString().equals(name))
        {
            System.out.println(name + " is palindrome");
        } else System.out.println(name + " isn't palindrome");
    }