我试图与工作进行比较,但我一生都无法弄清楚出了什么问题。
StringL l = new StringL();
l.insert("banana", 0);
l.insert("orange", 1);
l.insert("apple", 2);
l.insert("pear", 3);
if (!(l.toString().equals("banana, orange, apple, pear")));{
System.out.println("Test failed: should have returned banana, orange, apple, pear but returned " + l.toString());}
}
但是,当我运行它时,我得到:
Test failed: should have returned banana, orange, apple, pear but returned banana, orange, apple, pear
字符串:
public String toString() {
String result = ("") ;
if(size() > 0)
result += stringList.get(0);
for(int i = 1; i < size(); i++)
result += ", " + stringList.get(i);
return result;
}
最佳答案
你有一个额外的;
,你不应该这样做
if (!(l.toString().equals("banana, orange, apple, pear")));{
^
这最终看起来像
if (!(l.toString().equals("banana, orange, apple, pear")))
;
{
System.out.println("Test failed: should have returned banana, orange, apple, pear but returned " + l.toString());
}
因此,如果条件为 true
,if
就会执行空语句 ;
。无论如何,{}
block 都会执行。
关于java - toString.equals 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22213918/