Java中的回文测试器

Java中的回文测试器,java,Java,我有一个代码来测试字符串,看看它们是否是回文形式。在最后一行,我得到一个错误,说Stringbuilder无法转换为字符串。我不明白如果我在构建一个字符串,那怎么不是一个字符串。另外,任务的一部分是创建我们自己的堆栈类。我的名字叫MyStack,但我不确定我在任何地方都叫它,除非我做了一个新的堆栈。如何调用MyStack而不是库堆栈 public boolean isPalindrome(String line) throws StackException { MyStack Stack

我有一个代码来测试字符串,看看它们是否是回文形式。在最后一行,我得到一个错误,说Stringbuilder无法转换为字符串。我不明白如果我在构建一个字符串,那怎么不是一个字符串。另外,任务的一部分是创建我们自己的堆栈类。我的名字叫MyStack,但我不确定我在任何地方都叫它,除非我做了一个新的堆栈。如何调用MyStack而不是库堆栈

public boolean isPalindrome(String line) throws StackException {
    MyStack Stack = new MyStack();
    // initialize loop counters
    int i = 0;
    int n = line.length();

    /* Push all char to a_stack */
    while (i < line.length()){
        char ch = line.charAt(i);
        Stack.push(ch);
        i++;
    }
    StringBuilder result = new StringBuilder();
    while (!Stack.empty()){
        result.append(Stack.pop());
    }
    result.toString();

    return inputString.equalsIgnoreCase(result);
}
public boolean isPalindrome(字符串行)抛出StackException{
MyStack Stack=新MyStack();
//初始化循环计数器
int i=0;
int n=line.length();
/*将所有字符推送到\u堆栈*/
而(i
StringBuilder
转换为
String

return inputString.equalsIgnoreCase(result.toString());
return line.equalsIgnoreCase(result.toString());
你可以试试这个:

return inputString.equalsIgnoreCase(result.toString());
而不是

return inputString.equalsIgnoreCase(result);
也就是说,您必须转换,因为它需要一个字符串,而不是一个StringBuilder,您需要将
StringBuilder
转换为一个字符串以进行相等性检查,我认为您的意思是
line
而不是
inputString

return inputString.equalsIgnoreCase(result.toString());
return line.equalsIgnoreCase(result.toString());

StringBuilder
不是
字符串
,它是一个生成
字符串的对象。说
String
StringBuilder
就像说建筑工人是一座建筑,因为他/她建造了一座建筑(某种程度上)。您需要将其转换为
字符串
。第二个问题的答案是“不要将变量命名为与库类相同的名称,并遵循命名约定以避免混淆”
result.toString()
返回一个
字符串。它不会使
结果
更改类型<代码>结果
仍然是一个
StringBuilder
。可能是重复的啊,好的,谢谢。我知道这就是我在结果行中所做的;在上面,但我想不是。非常感谢!