繁体   English   中英

.equals()方法是否适用于StringBuilders?

[英]Does the .equals() method work with StringBuilders?

我正在尝试制作一个程序来测试用户输入字符串是否是回文。

这是我的代码:

import java.util.Scanner;
public class palindrome{
 public static void main(String[] args){
  Scanner input = new Scanner(System.in);
  StringBuilder sb = new StringBuilder();
  System.out.println("Enter text");
  String inputstr = input.nextLine();
  sb.append(inputstr);
  if((sb).equals(sb.reverse())){
    System.out.println("Palindrome");
    }
    else{
    System.out.println("Not a palindrome");
    }
    }
}

没有编译时错误,但无论我输入什么,输出都是回文。 .equals()和StringBuilder之间是否存在某种不兼容性? 如果是这样,有没有解决方法?

StringBuilder不会覆盖equals ,所以你应该使用Stringequals代替。

if(sb.toString().equals(sb.reverse().toString()))

PS即使它确实覆盖了equals ,你的测试总是会返回true,因为你正在将StringBuilder实例与它自己进行比较( reverse不会返回一个新的StringBuilder实例)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM