Java中的回文测试仪

时间:2014-07-01 05:02:10

标签: java

我有一个代码来测试一串字符,看它们是否处于回文形式。我在最后一行收到错误,说Stringbuilder无法转换为String。我不明白我是否正在构建一个字符串,这怎么不是一个字符串。此外,部分任务是创建我们自己的堆栈类。我的名字叫做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);
}

3 个答案:

答案 0 :(得分:3)

StringBuilder转换为String

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

答案 1 :(得分:1)

你可以试试这个:

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

而不是

return inputString.equalsIgnoreCase(result);

即,您必须转换StringBuilder to String

答案 2 :(得分:1)

由于String.equalsIgnoreCase(String)接受String而不是StringBuilder,因此您需要将StringBuilder转换为字符串以进行该等式检查,我认为您的意思是line而不是{{1 }}

inputString