【发布时间】:2013-06-14 14:12:38
【问题描述】:
以下代码不起作用。谁能告诉我以下代码有什么问题。从逻辑上讲,它应该可以工作...
package assignments;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class IsPalindrome {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
System.out.println("Enter a Word:");
StringBuffer sb1 = new StringBuffer(br.readLine());
StringBuffer sb2 = new StringBuffer(sb1);
sb1.reverse();
if(sb2.equals(sb1))
System.out.println("Palindrome");
else
System.out.println("Not a Palindrome");
}
}
【问题讨论】:
-
您可能希望使用
StringBuilder而不是StringBuffer(如果您不从多个线程访问它),因为它更快。 -
这可能会回答您的问题stackoverflow.com/questions/2012305/…
-
StringBuffer不会覆盖从Object继承的equals(),因此StringBuffer中的内容只是比较了它们的引用。 -
如果您还不知道,您应该阅读 API 文档,而不是对方法的行为做出假设。 StringBuffer documentation 表示它的 equals 方法是从 Object 继承的。
-
如果可以使用StringBuilder,请不要使用StringBuffer。此类已被弃用近 10 年。 vanillajava.blogspot.com/2012/08/…
标签: java string tostring stringbuffer object-to-string