我有一个代码来测试一串字符,看它们是否处于回文形式。我在最后一行收到错误,说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);
}
答案 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