Java中的回文测试器
我有一个代码来测试字符串,看看它们是否是回文形式。在最后一行,我得到一个错误,说Stringbuilder无法转换为字符串。我不明白如果我在构建一个字符串,那怎么不是一个字符串。另外,任务的一部分是创建我们自己的堆栈类。我的名字叫MyStack,但我不确定我在任何地方都叫它,除非我做了一个新的堆栈。如何调用MyStack而不是库堆栈Java中的回文测试器,java,Java,我有一个代码来测试字符串,看看它们是否是回文形式。在最后一行,我得到一个错误,说Stringbuilder无法转换为字符串。我不明白如果我在构建一个字符串,那怎么不是一个字符串。另外,任务的一部分是创建我们自己的堆栈类。我的名字叫MyStack,但我不确定我在任何地方都叫它,除非我做了一个新的堆栈。如何调用MyStack而不是库堆栈 public boolean isPalindrome(String line) throws StackException { MyStack Stack
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
。可能是重复的啊,好的,谢谢。我知道这就是我在结果行中所做的;在上面,但我想不是。非常感谢!