![パソコン](https://assets.st-note.com/production/uploads/images/5027801/rectangle_large_a3365e562fe8b6314469b63155ced621.jpg?width=1200)
文字列のプルダウンメニューを作ろう
前回はこちら
System.out.println("<select name='age'>");
for(int i=1;i<=100;i++){
System.out.println("<option>"+i+"才</option>");
}
System.out.println("</select>");
前回も書いたように、こちらJavaの中でhtmlタグを使えることを利用しての年齢入力用プルダウンメニューのサンプルコードなわけです。これを元に、文字列のプルダウンメニューを作成してみたいと思います。なるべく簡単になるように。
このサンプルコードですが、多分こういうことなんだと思います。
//「age」という名前のプルダウンメニューを作成、表示
//名前をつけたが表示はされないものらしい
System.out.println("<select name='age'>");
//表示命令(”<プルダウンメニュー 名前は’age’>”);
//1から初めて100まで1ずつ足していく
//100を超えたら終わり
for(int i=1;i<=100;i++){
//繰り返し(数字変数 iを1とする;iが100以下の場合;iに1を足す)
{ //ここから
// iに「才」を付けて表示
System.out.println("<option>"+i+"才</option>"); }
//表示命令(”<項目>” iに”才”を付けて<ここまで項目>”);
} //ここまで(繰り返し)
//プルダウンメニューの話ここまで。
System.out.println("</select>");
//表示命令(”<ここまでプルダウンメニュー>”);
各項目が年齢など数字ならば繰り返し計算することで楽ができるのですが、文字列の場合そうも行きません。例えば都道府県のプルダウンメニューを作りたい場合には、47都道府県の名前を全てあらかじめ入力しておかなければならないのです。ただ、それを全て
System.out.println("<select name='todouhuken'>");
System.out.println("<option>"北海道"</option>");
System.out.println("<option>"青森"</option>");System.out.println("<option>"秋田"</option>");System.out.println("<option>"……
などとやっていては時間と手間がかかりすぎます。長くなるし、そうなれば当然容量だって増えてしまうでしょう。たぶん。そこで私考えました。調べれば簡単に出てくるものなのかもしれませんが、例えば何か問題集などでも、答えを丸写しするだけでは身につきません。とりあえず一度はやってみましょうということで。えーと……今まで勉強したJavaの知識を総動員して……
「各都道府県を文字列として配列に入れ、n番目の要素を項目として表示」
したら出来そうじゃありません?でも一度は配列に入れないとならないんですよねどうしても……47都道府県……えーと配列に文字列を入れるには……
String todouhuken[] ={"北海道","青森","岩手","秋田","山形","福島","茨城","栃木","群馬","埼玉","千葉","東京","神奈川","新潟","富山","石川","福井","山梨","長野","岐阜","静岡","愛知","三重","滋賀","京都","大阪","兵庫","奈良","和歌山","鳥取","島根","岡山","広島","山口","徳島","香川","愛媛","高知","福岡","佐賀","長崎","熊本","大分","宮崎","鹿児島","沖縄"};
配列の区切りは「,」で「””」でくくると文字列扱いになります。で、n番目をプルダウンメニューの項目として表示するには
System.out.println("<select name='todouhuken'>");
for(int i=0;i<=46;i++){
System.out.println("<option>"i"</option>");
}
System.out.println("</select>");
とすればいいのかな?あ、まだn番目をiに代入してないや(汗)47都道府県なのにiが0から始まって46までなのはJavaなどの決まりごととして”配列”というものが0から始まるためです。なぜ1からではないのかというと「一つでは”列”ではないから」なのではないでしょうか(笑)。冗談はさておき、あるサイトでは配列を「箱を積み上げる」ことに例えていました。箱の上に箱を重ねることを「積み上げる」とした場合「箱を1個積み上げる」というのは「まずある箱の上に箱を乗せた」ということで、そこは「箱が二つある」ということである、と。
あとはこれを組み合わせていけばいいはず、というところで……ところで、なんで北海道だけ「道」って付けるんですかね?「北海」って書いちゃうと地名っぽくないから?「北海」が別にあるからかな?などと余計なことを考えつつ
続く!
ここから先は
¥ 100
この記事が気に入ったらサポートをしてみませんか?