2016-04-09 1 views
0

Я пытаюсь преобразовать целые входы в двоичную строку и объединить их в одну длинную строку. Пример:Почему я не могу конкатенировать Integer.toBinaryString() с другой строкой в ​​Java?

input: 4 5 
output: 0100 0101 

После проверки API и, видя, что toBinaryString возвращает строку, я уверен, что мое решение должно работать, но это не так.

Мое решение:

String str = "5 in binary: "; 
str.concat(Integer.toBinaryString(5)); 

или

String str = "5 in binary: "; 
str + Integer.toBinaryString(5); 

Каждый из них будет просто распечатать исходную строку "5 в двоичном виде:" а не "5 в двоичном: 0101".

toBinaryString() возвращает значение строки, чтобы это было возможно, если это не так?

+0

Строки неизменны, так str.concat() не изменяет ул, он создает новый экземпляр String, который получает выбросить, потому что он не назначен на что угодно. –

+0

Спасибо, я люблю тебя. – user3590350

ответ

4

Поскольку String является неизменным объектом. Так str + Integer.toBinaryString(5); не изменяет содержание str. Он просто возвращает другой объект String. Вы должны назначить этот новый объект str что-то вроде этого:

str = str + Integer.toBinaryString(5); 
Смежные вопросы