文字列と数値を演算すると、自動的に型変換が行われます。計算順序が変わると、結果に影響することも。では、問題です!

問題 - 文字列と数値の連結「難易度:中」

次のようなJavaプログラムがあります。

int a = 2012;
int b = 4;
String year = "年";
String str1 = a+b+year;
String str2 = year+a+b;

さて、str1、str2にはそれぞれどのような値が入っているでしょうか?

文字列と数値を演算すると、自動的に型変換が行われます。計算順序が変わると、結果に影響することも。では、問題です!

問題 - 文字列と数値の連結「難易度:中」

次のようなJavaプログラムがあります。

int a = 2012;
int b = 4;
String year = "年";
String str1 = a+b+year;
String str2 = year+a+b;

さて、str1、str2にはそれぞれどのような値が入っているでしょうか?

解答

変数str1に入っている値は文字列の"2016年"。

変数str2に入っている値は文字列の"年20124"。

解説

変数a、bにセットされている値は数値の2012と4、変数yearにセットされているのは文字列の"年"です。また、「a+b+year」や「year+a+b」の計算は左から順に処理されていきます。

「a+b+year」の場合、まず、数値の2012と4を足した数値の2016となり、その後に数値の2016と文字列の"年"が連結されて、"2016年"という文字列になります。

「year+a+b」の場合、まず、文字列の"年"と数値の2012が連結されて、文字列の"年2012"となり、その後に文字列の"年2012"と数値の4が連結され、"年20124"となります。

+演算子は、数値どうしの場合は加算演算子として動作しますが、どちらかに文字列が含まれる場合は連結演算子として動作します。

カンタンだったね! 午後からもお仕事がんばって!