2016-04-09 76 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

因爲字符串是不可變的對象。 因此str + Integer.toBinaryString(5);不會更改str的內容。它只是返回另一個String對象。您需要在新的對象分配給str類似的東西:

str = str + Integer.toBinaryString(5); 
相關問題