java - 为什么我的预期字符串与输出不匹配?

标签 java bluej

我编写了一个方法(使用 BlueJ),它将用户的银行帐户信息作为单行描述返回:

public String toString()
    {
        return (acctNumber + "\t" + name + "\t" + fmt.format(balance));
    }

我为该方法编写了一个单元测试,如下所示:

public void testToString()
    {
        Account account1 = new Account("Aurora", 772340912, 1000.00f);
        assertEquals("Test account toString failed.", "772340912    Aurora    $1,000.00", account1.toString());
    }

我查看了 BlueJ 中的“Resources”文件夹,里面写着:bluej.editor.tabsize=4所以我认为这意味着一个制表符等于 4 个空格。然而,即使我在预期输出中使用了四个空格,我的单元测试仍然失败。有任何想法吗?预先感谢您!

最佳答案

制表符不是四个空格。 bluej.editor.tabsize=4 表示 BlueJ 系统将选项卡渲染为四个空格。

但是,无论如何呈现,制表符仍然是制表符,与空格完全不同。 '\t' == 11,而 ' ' == 32"" 甚至无法与 进行比较int 因为它是 String,而不是 char

对于预期的字符串,请使用 "\t" 而不是 ""

关于java - 为什么我的预期字符串与输出不匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29503680/

相关文章:

java - 遍历 Java 集合以使这些球反弹,有什么提示吗?

java - 如何从另一个类调用方法函数?

java - 为什么使用netty循环writeAndFlush发送DatagramPacket必须让线程 hibernate 一段时间?

java - 罗马数字到阿拉伯数字的转换器

Java - 具有父类(super class)的打印格式

java - BlueJ - 'no suitable method found' 用于排序方法

java - 如何退出正在运行的程序?

java - 如何使用xpath获取以下文本名称?

java - 转换 Java 函数式接口(interface)

Java 7 监视服务 : avoiding an infinite loop of events when changing the event source in handler