0

現在、配列を使ったプログラムの作り方を学んでいます。azなどの文字をコピーする方法を学ぼうとしています。copyFrom と copyToの実行方法は知っていますが、リンゴなどの単語を形成するためにランダムな文字を取得して選択する方法はわかりません。これが私のコードです:

パブリッククラスのコピー配列 {

public static void main(String [] args){ 

    char[] copyFrom = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
            'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };       

     char[] copyTo = java.util.Arrays.copyOfRange(copyFrom, 2, 20);

        System.out.println(new String(copyTo));

    }

}

私は現在copyToとcopyFromを持っていますが、それは視覚的な好みを助けるためのもう少しのコードです。

- [0] = a [15] = p [15] = p [11] = L [4] = e などの特定の文字をコピーすると、apple と出力されますか?

4

3 に答える 3

3

これを試して:

char[] randomChars = {
    copyFrom[0],
    copyFrom[15],
    copyFrom[15],
    copyFrom[11],
    copyFrom[4]
}

String output = new String(randomChars);

outputこれで文字列が含まれます"apple"char[]source からのランダムな文字が必要であり、「コピー」メソッドは連続する文字の範囲に対してのみ機能するため、他に方法はありません。

ソリューションをもう少し一般的なものにするために、次のように、int[]相対的なインデックスを含む を受け取り、copyFromそれらの位置にある文字を含む文字列を返すヘルパー メソッドを作成できます。

public String copyRandom(char[] copyFrom, int[] indexes) {
    char[] output = new char[indexes.length];
    for (int i=0; i < indexes.length; i++)
        output[i] = copyFrom[indexes[i]];
    return new String(output);
}

これはあなたがそれを使用する方法です:

int[] indexes = {0, 15, 15, 11, 4};
copyRandom(copyFrom, indexes);
=> "apple"
于 2013-10-21T15:53:45.517 に答える