2016-04-09 5 views
0

私は整数入力をバイナリ文字列に変換し、それらを一緒に1つの長い文字列に連結しようとしています。例:APIをチェックアウトし、toBinaryStringが、私は私のソリューションが動作するはず確信していますが、それはない文字列を返すことを見た後Integer.toBinaryString()をJavaの別の文字列に連結できないのはなぜですか?

input: 4 5 
output: 0100 0101 

マイソリューション:

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何かにその新しいオブジェクトを割り当てる必要があります何かに。 –

+0

ありがとう、私はあなたを愛しています。 – user3590350

答えて

4

Stringは不変オブジェクトです。 したがってstr + Integer.toBinaryString(5);strの内容を変更しません。別のStringオブジェクトを返します。 str.concat()はstrのを修正しないので、それが割り当てられていないので捨てます新しいStringインスタンスを作成し、

str = str + Integer.toBinaryString(5); 
関連する問題