2015-04-08 2 views
0

Я написал метод (с помощью 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, и он говорит: bluej.editor.tabsize=4, поэтому я предполагаю, что это означает, что вкладка равна 4 пробелам. Однако, хотя я использовал четыре пробела в ожидаемом выходе, мой модульный тест по-прежнему не работает. Есть идеи? Заранее спасибо!

+4

Нет, вкладка не равна 4 пробелам, она _displays_ как 4 пробела. –

+1

'\ t' не означает, что он будет вводить 4 места на своем месте. Что делать, если вы хотите запустить код на другом компьютере, где tab = 8 пробелов? Вы не должны проверять использование подсчета пробелов. –

+0

А я вижу, хорошо. Итак, как бы я напечатал ожидаемую строку? Я бы просто использовал кнопку «tab» на моей клавиатуре? – Michelle

ответ

1

Вкладка не является четырьмя пробелами. bluej.editor.tabsize=4 означает, что система BlueJ передает вкладки, как если бы они были четырьмя пробелами.

Однако, независимо от того, как они отображаются, вкладки по-прежнему являются вкладками, что-то совершенно отличное от места. '\t' == 11, а ' ' == 32 и " " не могут сравниться с int, так как это String, а не char.

Для ожидаемой строки используйте "\t" вместо " ".

+0

Спасибо за ответ, я понял его сейчас. Я tabsize = 4 меня смутил. :) – Michelle

+0

@ Michelle Я отредактировал свой ответ, чтобы включить ответ на этот вопрос. Я не знаю, работает ли кнопка вкладки, но я знаю '\ t'. –

+0

Удивительный, еще раз спасибо! – Michelle

0

Вкладка - это другой символ ASCII из символа пробела. Вероятно, это может привести к некоторому несоответствию, когда код ASCII для вкладки сравнивается с 4 кодами ASCII для пробела, которые не будут равными.

Так просто отредактируйте тот или другой, чтобы они совпадали!

Смежные вопросы