Java 用于确定回文的程序仅执行else条件
我正在尝试获取字符串的回文,下面是我的代码。问题是,它只执行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();
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");
}