java - toString.equals 不起作用?

标签 java equals tostring

我试图与工作进行比较,但我一生都无法弄清楚出了什么问题。

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());
}

因此,如果条件为 trueif 就会执行空语句 ;。无论如何,{} block 都会执行。

关于java - toString.equals 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22213918/

相关文章:

Java - toString 无法正确打印数组

Java RMI - 使客户端成为服务器

c - lex yacc 比较两个字符串

linq - “等于”和“顺序等于”之间的区别?

java - 二叉搜索树遍历方法,依次为toString

java - 在 Android 项目中使用 EditText.toString() 方法取回奇怪的文本。为什么?

java - com.bea.wli.config.deployment.server.ServerDeploymentConflictException:由于与正在进行的其他工作发生冲突,无法激活 session

java - 数组输出被截断

java - 在 for 循环中实例化数组以创建 JTextFields

java - equals() 方法检查 X 和 Y 坐标