文字列の代入と結合

文字列の宣言と代入

javaの文字列は基本データ型ではありませんがある程度までは普通の変数のように取り扱うことができます。このページの範囲での違いは変数宣言の時に使う型の名前が大文字で始まる String であることぐらいです。( int double などは小文字で始まります )

String namae;
namae = "abc";

これを1行で書くこともできます。

String namae = "abc";

文字列の連結

文字列に *,/,- の演算をすることはできませんが,+ は連結になります。

String s,t,u;      // 宣言します
s = "abc";       // 代入します
t = "def";
u = s + t;       // 連結します
System.out.println( u );    // 表示します。abcdef となります。

代入しないで直接表示することも可能です。

System.out.println( s + t );    // おなじく,abcdef となります。

数字の連結

文字列が数字の場合も文字列である限り足し算にはならず,連結です。

System.out.println( "23" + "45" );    // 表示は 2345 となります。

文字列と数値の連結

文字列と数値を + で結ぶと数値を文字列に変換して連結します。

System.out.println( "a = " + 100 );    // 表示は a = 100 となります。

これを使えば,

 System.out.print( "30 × 5 = " );
 System.out.println( 30 * 5 );

 System.out.println( "30 × 5 = " + 30 * 5 );

と書くことができます。表示は次のようになります。

30 × 5 = 150

ただし,次の例はそのままではだめです。

 System.out.println( "30 + 5 = " + 30 + 5 );

これは,

30 + 5 = 305

と表示されてしまいます。

ただしく表示させるには,

 System.out.println( "30 + 5 = " + (30 + 5) );

とする必要があります。これは演算の順序が * と + では * が先に行われ,おなじ + なら左から順に行われるからです。

もちろん,文字列や数値が変数に入っていてもおなじです。

 String hankei ="半径 ";
 String enshuu =" 円周の長さは ";
 double pai    = 3.14;
 double r      = 4.5;
 System.out.println( hankei + r + enshuu + 2*r*pai );

これで表示は次のようになります。

半径 4.5 円周の長さは 28.26

課題

1.

ファイル名 Renketsu.java

円周率を3.14として、半径2.5の円の面積を次のように表示するプログラムを作れ。面積はπr2

文字列と数値の連結を必ずつかうこと。例えば、

 System.out.println( hankei + r + menseki + pai*r*r );

変数名は何でも構いませんが宣言した変数名と使用する変数は合わせなければなりません。

半径と円周率の数値を入れる変数( 例では r と pai )は浮動小数のものにする必要があります。double を使ってください。

結果は次のようになるようにしてください。

半径 2.5 面積は 19.625

2.

ファイル名 Renketsu2.java

円周率を3.14として、半径2.5, 3.5, 4.5 の円の面積を次のように表示するプログラムを作れ。

結果は次のようにする

半径 2.5 面積は 19.625
半径 3.5 面積は 38.465
半径 4.5 面積は 63.585

同じ名前の変数宣言を複数回するとエラーになります。半径については次の例のようにするとよいでしょう。

.........
double pai = 3.14;
double r;
r = 2.5;
// 2.5 の時の処理
 System.out.println( hankei + r + menseki + pai*r*r );
r = 3.5;
// 3.5 の時の処理(2.5と同じ)
 System.out.println( hankei + r + menseki + pai*r*r );
r = 4.5;
// 4.5 の時の処理(2.5と同じ)
 System.out.println( hankei + r + menseki + pai*r*r );

Javaプログラミング(May.2010)
聖愛中学高等学校
http://www.seiai.ed.jp/