文字列の配列

文字列の配列を使っておみくじを作る

配列の要素として扱うことができるのは、int型やdouble型等の基本型だけではありません。 クラス型等の参照型も扱うことができるのです。 ここでは、特にString型の要素を持つ配列について解説したいと思います。 と言っても、配列変数の宣言や配列本体の生成の仕方は基本型と同じです。

例えば、String型の6個の要素を持つ配列の場合、配列変数の宣言と配列本体の生成をまとめて行うには、次のように記述します。

        String[] fortune = new String[6];

さらに各要素に値を代入するには次のように記述します。

        fortune[0] = "大吉";
        fortune[1] = "吉";
        fortune[2] = "中吉";
        fortune[3] = "小吉";
        fortune[4] = "末吉";
        fortune[5] = "凶";

もちろん、初期化によって配列変数の宣言、配列本体の生成、各要素への値の代入をまとめて行うこともできます。

        String[] fortune = {"大吉", "吉", "中吉", "小吉", "末吉", "凶"};

それでは、文字列の配列を使っておみくじプログラムを作ってみましょう。

ArraySample08.java
import java.util.Random;

class ArraySample08 {
    public static void main(String[] args) {
        Random rnd =new Random();
        String[] fortune = {"大吉", "吉", "中吉", "小吉", "末吉", "末吉", "凶"};

        int index = rnd.nextInt(fortune.length);
        System.out.println(fortune[index]);
    }
}
ArraySample08の実行結果 1
末吉
ArraySample08の実行結果 2

おみくじということで、いろいろな運勢がランダムに出現するようにプログラムする必要が有ります。 そこで乱数の登場です。

まず、乱数を利用するためのインポートです。

import java.util.Random;

そして、Randomクラスのインスタンスを作って、変数rndに代入するのでしたね。

        Random rnd =new Random();

次に、いろいろな運勢を文字列の配列として用意します。

        String[] fortune = {"大吉", "吉", "中吉", "小吉", "末吉", "末吉", "凶"};

よく見ると、「末吉」が2個有りますが、これは間違いではありません。 要素が全部で7個、「末吉」だけ2個あるので、「末吉」が出る確率は2/7となり、その他はすべて1/7です。 つまり、「末吉」の確率を高めに設定してあるというわけです。

次に、0以上fortune.length未満の乱数を発生させて変数indexに代入します。

        int index = rnd.nextInt(fortune.length);

fortune.lengthの値は7ですから、indexには0以上7未満のランダムな整数値が格納されることになります。

最後に、このindexに対応する要素を表示します。

        System.out.println(fortune[index]);